新手-问题:Xcode中:如何链接预编译的C++库
我有一个小的测试类(TestLibMain.cpp)在C++中它编译成位于一个“libTestLib.dylib”包含TestLibMain.h文件的目录的子目录“debug”。
如何从我的Xcode项目中使用dylib?我在我的代码中导入了TestLibMain.h,并在构建设置中设置了标题搜索路径。这工作正常。但是现在链接器告诉我他找不到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)
问题:
- 是否有可能链接dylib文件在Xcode中为i386创建?我想在Eclipse中的一个项目中使用Xcode项目编译的库(我想在Android NDK中重用...)
- 我该如何让Xcode找到dylib文件?
- 其实dylib文件是正确的文件链接?没有.a文件由eclipse创建,但.d和.o文件?
感谢您的回答!所以在我的iOS项目中不可能有任何预编译的库文件?那么将通用源代码直接包含到我的iOS(和我的Android)项目中似乎会更好。 –
您可以为iOS项目使用静态库。 – Max
Hello Max,谢谢你的回答。我知道在Eclipse(* .a文件)中编译了一个静态库,但我得到了相同的消息。将尝试找出我可以在哪里调整二进制格式... –