iphone应用程序与dlopen崩溃(/usr/lib/libSystem.B.dylib,0x00000009)

时间:2011-11-22 02:51:02

标签: iphone objective-c xcode sdk

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

2 个答案:

答案 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框架:

remove framework screenshot

然后将其添加回您的项目,再次执行“清理”,“构建”和“运行”。