新手问题:
我在c ++中有一个小的测试类(TestLibMain.cpp),并将其编译为“libTestLib.dylib”,它位于包含TestLibMain.h文件的目录的“debug”子目录中。
如何使用我的Xcode项目中的dylib?我在代码中导入了TestLibMain.h,并在构建设置中设置了Header-search路径。这很好用。但现在链接器告诉我他找不到dylib(也不能找到他自己编译的“TestLibMain.cpp”文件......)。在Ecplise / CDT中创建的dylib有一个不同的名称:“libTestLib.dylib”。在Xcode中设置“库搜索路径”没有帮助......
这是我的错误消息:
Undefined symbols for architecture i386:
"TestLibMain::TestLibMain()", referenced from:
-[tbViewController viewWillAppear:] in tbViewController.o
"TestLibMain::getNumber()", referenced from:
-[tbViewController viewWillAppear:] in tbViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
问题:
答案 0 :(得分:3)
1.如果您将dylib用于iOS项目 - 这是不可能的,因为Apple不允许使用自定义动态库。您也不能使用使用NDK构建的库,即使它们属于相同的体系结构,因为它们具有不同的二进制格式(Mac OS和iOS使用Mach-O,Android使用ELF)。
2.转到目标首选项 - >构建阶段 - >按'+' - >添加其他
3.dylib是正确的文件,除非它不是iOS项目。