我有一个静态库,它的代码是用C ++。 我想在一个目标C应用程序来使用它。
(我一直在使用C库蛔虫,他们一直在正常工作。)
我加了库,并试图打造,它不能因为“命名空间”和载体某处头文件使用。 于是,我只好我的目标C文件的类型更改为目标的C ++。 (我没有改变扩展.mm)。 由于这个文件是被包含在另一个文件中,该文件也必须改变,以C ++,同样,对于其他一些文件。
现在还没有命名空间的错误。 但现在当我建,它CRIBBS它不能找到引用的符号。 我现在改变了扩展.mm,还是一样。 我做了一些搜索,我读到压延一些事情。 我不明白那是什么,但这里的东西我试过了,
而不是直接调用C ++函数的,我创建了一个C函数,它的宣言之前由“外部‘C’”,和库调用存在于这个C函数。 还是一样。 我用“的extern‘C’”前面的C函数的实现,还是一样。
我也看了,如果Xcode中看到.mm扩展,才把它采用G ++编译器。 在这种情况下,没有必要的extern“C”。 是吗?
我需要在其他编译器标志设定目标增加一些编译器标志?
ld: warning: directory not found for option '-F-F/Users/username/Desktop/projectFolder'
Undefined symbols for architecture armv7:
"IIS::Image::Image::Image(unsigned int, unsigned int, ImageFormat)", referenced from:
-[ImageEditorSupport loadToolKitForImage:width:height:length:] in ImageEditorSupport.o
"IIS::Image::Image::getNumComponents(unsigned int&) const", referenced from:
-[ImageEditorSupport loadToolKitForImage:width:height:length:] in ImageEditorSupport.o
"IIS::Image::ToolKit::adjustSaturation(IIS::Image::Image const&, unsigned int, IIS::Image::Image&)", referenced from:
-[ImageEditorSupport applyToolkitForEditID:intensity:] in ImageEditorSupport.o
"IIS::Image::ToolKit::adjustContrast(IIS::Image::Image const&, unsigned int, IIS::Image::Image&)", referenced from:
-[ImageEditorSupport applyToolkitForEditID:intensity:] in ImageEditorSupport.o
"IIS::Image::Image::Image(unsigned int, unsigned int, ImageFormat, void*, unsigned int)", referenced from:
_create_image_using_buffer in ImageEditorSupport.o
"IIS::Image::ToolKit::adjustColorTemp(IIS::Image::Image const&, int, IIS::Image::Image&)", referenced from:
-[ImageEditorSupport applyToolkitForEditID:intensity:] in ImageEditorSupport.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我也检查了我加入了正确的库搜索路径几次。 我怀疑这两个“-F-F”。 我只是一个期待。
* 编辑:*在警告-FF/Users/username/Desktop/projectFolder
是否意味着它正在搜索的路径-F/Users/username/Desktop/projectFolder
而非/Users/username/Desktop/projectFolder
? 额外的怎么可能-F
来?