iphone应用程序与dlopen(/usr/lib/libSystem.B.dylib, 0x00000009)
控制台告诉我:
的SDK / iPhoneSimulator5.0.sdk /系统/库/ PrivateFrameworks / Celestial.framework /天体 dlopen(/usr/lib/libSystem.B.dylib,0x00000009)。
当我链接库libSystem.B.dylib时,收到错误:
ld:找不到-lSystem.B的库 命令/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2失败>退出代码为1
答案 0 :(得分:3)
我在Xcode构建设置中指定链接器标志-weak-lSystem,它可以工作。
答案 1 :(得分:0)
尝试从libSystem.B.dylib重新创建符号链接到libSystem.dylib,或者将lib从/usr/lib
目录复制到iPhone Simulator文件夹中。
要复制:
sudo cp -v /usr/lib/libSystem.B.dylib /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/lib/
或者,改为创建一个符号链接:
sudo ln -s /usr/lib/libSystem.B.dylib /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/lib/libSystem.B.dylib
现在,运行此命令以验证是否已创建符号链接或副本是否成功:
ls -l /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/lib/libSys*
如果你使用cp
:
lrwxr-xr-x 1 root wheel 107B Nov 21 19:08 libSystem.B.dylib
-rwxr-xr-x 1 root wheel 186K Sep 15 23:32 libSystem.dylib
或者,如果您使用ln
:
lrwxr-xr-x 1 root wheel 107B Nov 21 19:08 libSystem.B.dylib -> /usr/lib/libSystem.dylib
-rwxr-xr-x 1 root wheel 186K Sep 15 23:32 libSystem.dylib
另一个想法:
如果您最近升级到Xcode 4.2,则会出现一个错误导致项目“丢失”某些框架(这意味着它们仍会显示在项目中,但Xcode实际上并不知道在哪里找到它们,并且它不会直到运行时才被抓住。这是一个相当罕见的错误,所以这可能不是导致你的错误的原因,但尝试这个修复并没有什么坏处
在“构建阶段”和文件层次结构中删除项目中的Celestial
框架:
然后将其添加回您的项目,再次执行“清理”,“构建”和“运行”。