dyld:库未加载:/usr/lib/libc++abi.dylib

5

我在Xcode 4.2上构建了项目。

我选择了iPhone 4.3模拟器并构建了项目。

然后出现了错误。

dyld: Library not loaded: /usr/lib/libc++abi.dylib
  Referenced from: /Users/Player/Library/Application Support/iPhone Simulator/4.3.2/Applications/CF49143F-07C9-4609-AADB-82DD3AEAF6D9/Mahjang.app/Mahjang
  Reason: image not found

我该如何解决这个问题?

需要您的帮助。

2个回答

12

我也遇到了这个问题:在Snow Leopard上安装了XCode 4.2,并在模拟器上运行我的应用程序。5.0模拟器可以工作,但会强制将其置于纵向模式(这是另一个问题)。直接的问题是,在XCode 4.1下正常工作的所有4.x模拟器都会将应用程序引导到Default.png启动画面,然后崩溃,并显示反汇编:

int 3
nop

堆栈跟踪显示 __dyld_dyld_fatal_error。在 gdb 中查看,最有用的信息已发布在上面的问题中。

将 llvm 链接到 libc++abi.dylib 复制到 /usr/lib 可以解决问题,但有一个更安全的解决方案:

答案:在您的构建设置中添加-Wl,-no_implicit_dylibs"Other Linker Flags"


当我将这个添加到我的其他链接器标志中时,已经有“-lz”在其之前,所以它看起来像这样:“-lz,-WI,-no_implicit_dylibs”,但是它会出现错误“库未找到“-lz,-WI,-no_implicit_dylibs"。 移除“-lz”标志会导致7个错误,是否有解决方法? 我不想下载其他答案中提到的源代码来使其工作。 谢谢! - TigerCoding
1
啊哈,应该是:“-lz -Wl,-no_implicit_dylibs” W小写L并且-lz后面不加逗号。 - TigerCoding

6
这是我找到的。从下面的链接下载zip文件。 http://howardhinnant.github.io/libcppabi.zip 将cxxabi.h复制到/usr/include,将libc++abi.dylib复制到/usr/lib。现在您的模拟器应该可以正常工作了。 这个URL对我来说有点奇怪,因为它是一个非官方的位置。但我从http://libcxx.llvm.org/得到了它,所以我会说它是可信的。不知道为什么需要这样做。

似乎Snow Leopard用户必须走这条路线,因为Lion已经自动包含了它。从上面链接的页面中可以看到:“要在Mac OS X 10.6(Snow Leopard)上构建,您需要一个辅助库和头文件,在此处找到。将cxxabi.h复制到/usr/include,并将libc++abi.dylib复制到/usr/lib。在Mac OS X 10.7(Lion)及更高版本中,这个辅助库和头文件已经为您安装好了。” - TigerCoding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接