我试图从 AudioCore 中包含几个不同的项目,特别是 AQRecorder。但是,这确实依赖于 c++ 代码。通常这不是问题,因为我只是将视图控制器重命名为扩展名为 .mm,一切都很好。但在这种情况下,我对 AQRecorder.h 的依赖间接地转到了我的 main.m,这给我带来了极大的痛苦。
我尝试了几种不同的方法,包括以下内容:
1) 更改所有 .m 和 .cpp 文件 -> .mm 文件
一切都完美编译,但是,它无法部署到我的 iOS 设备或模拟器,因为在部署到设备时出现此错误:
“选择具有受支持架构的目标,以便在此设备上运行。”
我正在使用 XCode 4.6,我的有效架构是 armv7 和 armv7s(我玩过这些但没有运气)。
2)尝试使用不透明指针,例如本指南中的指针:
http://philjordan.eu/article/mixing-objective-c-c++-and-objective-c++
我仍然遇到无法编译的相同问题。
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_AQWrappedRecorder", referenced from:
objc-class-ref in RTPPacketSender.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我的依赖项如下:
AQRecorder.h -> RTPPacketSender.h -> ActiveConversationViewController.h -> ConversationViewController.h -> AppDelegate.h -> main.m
其他人可以推荐任何尝试的东西。我确实花了一整天的时间调试这个问题,但没有运气。
文斯