dyld:库未加载:@ rpath / libxcrun.dylib引自xcrun

时间:2015-05-07 14:16:27

标签: osx-yosemite dylib llvm-gcc command-line-tool xcrun

我对mac来说比较新,现在正试图设置开发。基于Cordova的iOS应用程序的环境。我使用优胜美地10.10.3

我已经安装了xcode 6.3.1和6.3.1的命令行工具,在/Applications/Xcode.app/Contents/Developer/下我可以看到usr / bin和usr / lib,还有xcode-select -p指向这条路径,所以我认为命令行工具很好。

然而,当我运行xcodebuild时,我找不到命令。我已经手动将上面的路径添加到PATH环境变量中以使xcodebuild可见,但不确定为什么需要这样做,我认为安装应该已经处理好了。

然后当xcrun在某个脚本中执行时(npm install -g ios-deploy),我收到以下错误:

dyld:未加载库:@ rr / libxcrun.dylib是从/ usr / bin / xcrun引用的,原因:找不到图像。

我看到xcrun在/ usr / bin以及命令行工具安装路径下的usr / bin中可用。但是libxcrun.dylib仅在安装路径中可用。

我手动将此动态库复制到/ usr / lib并且xcrun工作。

虽然它似乎有效但我怀疑,这样的手动操作不应该是正常的安装后程序,如果它们?

在命令行安装后,我忘了做什么吗?如果有更多这样的小文件我需要复制/移动怎么办?我可以简单地在某处指定安装路径吗?

顺便说一句,我将安装路径/ usr / lib添加到PATH中,但是没有使用xcrun,必须复制.dylib。

Xcode和CLT从之前的版本升级了其他mac,没有这样的问题。

1 个答案:

答案 0 :(得分:0)

好吧,经过一些试用,我已经安装了npm的ios-deploy。我不确定我所做的是首选解决方案,对我而言,它更像是一种解决方法。

首先,据我所知,如果它是从以前版本的CLT或Xcode升级的,那么这个问题不存在,尽管所有可执行行为都是相同的。

e.g。将使用/ usr / bin / xcrun,而/ usr / lib没有libxcrun.dylib,而@executable_path = .. / lib,这意味着xcrun正在../lib位置查找库。

通常情况下,库未加载错误是预期的,但不知何故,在升级后的情况下,一些隐藏的设置告诉xcrun在正确的路径中搜索库。

我尝试过DYLD_LIBRARY_PATH,使用gcc和xcrun但是没有使用npm install。我现在只能通过将lib文件复制到/ usr / lib来修复错误。

好吧,即使我已经将DEVELOPER_DIR设置为正确的,并且xcode-select -p显示了相同。

但是这个警告似乎没有对npm install -g ios-deploy造成伤害......所以我现在可以忍受它了。

所以这个谜仍然存在。我仍然不知道为什么必须使用/ usr / bin / xcrun代替CLT / usr / bin / xcrun,我仍然不知道如何在升级的情况下/ usr / bin / xcrun设法找到正确的lib文件并没有抛出任何警告。新安装和升级之间有什么区别?

这个答案只是提供了一种解决方法,可以在不重新创建机器上的所有内容的情况下继续。

其他信息:

如评论中所示,之后我发现ios-sim无法运行,总是崩溃异常,因此我不得不重新安装操作系统并重新启动。这个问题消失了。现在我能记住的唯一区别是,我上次在OS和xcode之间安装了mac端口。 我的建议是,在操作系统之后立即安装Xcode,以避免意外的系统更改。