iphone应用程序因dlopen而崩溃(/usr/lib/libSystem.B.dylib,0x00000009)
iphone应用程序因dlopen(/usr/lib/libSystem.B.dylib,0x00000009)而崩溃。 控制台告诉我: sdk/iPhoneSimulator5.0.sdk/System/Library/PrivateFrameworks/sessional.framework/sessional dlopen(/usr/lib/libSystem.B.dylib,0x00000009) 当我链接libSystem.B.dylib库时,收到错误: ld:找不到-lSystem.B的库 命令/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2失败>,退出代码为1iphone应用程序因dlopen而崩溃(/usr/lib/libSystem.B.dylib,0x00000009),iphone,objective-c,xcode,sdk,Iphone,Objective C,Xcode,Sdk,iphone应用程序因dlopen(/usr/lib/libSystem.B.dylib,0x00000009)而崩溃。 控制台告诉我: sdk/iPhoneSimulator5.0.sdk/System/Library/PrivateFrameworks/sessional.framework/sessional dlopen(/usr/lib/libSystem.B.dylib,0x00000009) 当我链接libSystem.B.dylib库时,收到错误: ld:找不到-lSystem.
尝试重新创建从libSystem.B.dylib到libSystem.dylib的符号链接,或将lib从
/usr/lib
目录复制到iPhone模拟器文件夹中
复制:
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,那么有一个bug会导致项目“丢失”一些框架(这意味着它们仍然会显示在项目中,但是Xcode实际上不知道在哪里可以找到它们,并且直到运行时才会被捕获)。这是一个相当罕见的错误,因此这可能不是导致错误的原因,但尝试此修复不会有什么坏处。
在“构建阶段”和文件层次结构中,从项目中删除
框架:
然后将其添加回您的项目,再次执行“清理”、“构建”和“运行”。尝试重新创建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,那么有一个bug会导致项目“丢失”一些框架(这意味着它们仍然会显示在项目中,但是Xcode实际上不知道在哪里可以找到它们,并且直到运行时才会被捕获)。这是一个相当罕见的错误,因此这可能不是导致错误的原因,但尝试此修复不会有什么坏处。
在“构建阶段”和文件层次结构中,从项目中删除框架:
然后将其添加回您的项目中,再次执行“清理”、“生成”和“运行”。我在Xcode构建设置中指定链接器标志-弱lSystem,它就工作了。我在Xcode构建设置中指定链接器标志-弱lSystem,它就工作了。请参阅。我这样做了,但应用程序已使用dlopen(/usr/libSystem.B.dylib,0x00000009)停止@Oksana代替符号链接,尝试将其从/usr/lib/
复制到iPhone模拟器路径:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/lib/
。我这样做了,但应用程序停止使用dlopen(/usr/libSystem.B.dylib,0x00000009),尝试将其从/usr/lib/
复制到iPhone模拟器路径:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/lib/
。