无法将Obj-C ++子项目添加到Xcode Obj-C项目中

时间:2013-04-27 16:57:47

标签: objective-c xcode compiler-construction objective-c++ armv7

我创建了一个运行一些C ++(OpenCV)代码的Objective-C ++项目。它运行良好,一切运作良好。但后来我决定将这些例程作为子项目添加到我的MAIN PROJECT中,每当我尝试使用子项目类时都会出错。

问题是,我的SUBPROJECT使用 .mm 源文件,而我的MAIN PROJECT只使用 .m 源文件:enter image description here

每当我尝试分配DyOpenCV类(DyOpenCv *opencv = [DyOpenCv alloc])时,我都会遇到很多错误:Compilation errors

这是将Obj-C与Obj-Cpp项目合并的提示吗? 一旦我尝试从 .m 中运行 .mm 文件,这是一个特殊的界面吗?即使 .mm 文件来自子项目? 是否有必要将我的子项目的所有库添加到我的项目中(我已经这样做了)?

干杯,

1 个答案:

答案 0 :(得分:7)

您需要链接到c ++标准库。如果您的编译源阶段包含任何c ++文件,这通常会自动发生,但如果c ++全部包含在静态库中,那么您需要明确要求将其链接到最终的可执行文件。

检查子项目的构建设置。查找C ++标准库构建选项。如果它设置为libc ++(llvm标准库),则将-lc++添加到应用程序的其他链接器标志。如果它设置为libstdc ++(gnu库),则将-lstdc++添加到应用程序的其他链接器标志。