dyld:库未加载;找不到llbuild图像

时间:2019-05-29 10:07:01

标签: swift xcode bash macos

我使用了swift package init --type executable

我已经尝试在路径上设置xcode命令行工具。

发生以下错误:

  

模型:库未加载:@ rpath / llbuild.framework / Versions / A / llbuild   引用自:   / Library / Developer / CommandLineTools / usr / bin / swift-package原因:   找不到图片

4 个答案:

答案 0 :(得分:1)

我必须进入xcode的首选项,然后在“位置”下将“命令行工具”设置为正确的版本。我第一次打开时是空白的。

答案 1 :(得分:0)

我也遇到过类似的问题。 基本上,框架或库在项目中未正确链接。

如果要在xcode项目中拖放框架,则还必须将其链接到嵌入框架中。 (基本上,您必须将框架拖放到“嵌入框架”部分中)

请参见下图。

enter image description here

答案 2 :(得分:0)

bash_profile /Library/Developer/CommandLineTools/usr/bin中的路径配置错误。刚刚将其删除。解决了问题。 which swift应产生/usr/bin/swift

答案 3 :(得分:0)

我有同样的问题。我想做一些简单的命令行编码,但不想安装完整的Xcode膨胀。我在Mojave 10.14.6上仅安装了命令行工具。

我可以从命令行中调用swiftc来编译文件,该文件实际上完成了我需要的一切。 (我不记得我在哪里找到了能够执行此操作的参考,但是基本上您只是调用“ swiftc filename.swift”,您就很好了。)

但是让我感到恼火的是,编码“正确”方式(即Internet上大多数教程希望您采用的方式)的编码失败了。 “ swift package init ...”的内容一直与上面问题中张贴的错误相提并论。所以我迷上了它。

因此错误提示swift-package找不到名为llbuild的工具。

我发现llbuild可执行文件确实存在于我的机器上,位于:

/Library/Developer/CommandLineTools/usr/lib/swift/pm/llbuild/llbuild.framework/

那么,错误是因为swift-package在该目录中找不到该工具。

(作为一个补充说明,在我尝试解决此错误的早期,我尝试将一些路径添加到.bash_profile中。这些尝试均无济于事。如果我尝试添加该完整路径,我现在就想不起了,太懒了,现在不能尝试。)

我做了一些进一步的挖掘。互联网上某处的人指出,可以使用otools发现应用程序中设置的@rpath(错误消息中引用)变量。我在swift-package上使用了otools,发现它的@rpath似乎指向/ usr / lib。我注意到上面提到的llbuild的位置有一个... / usr / lib / ...结构。我想像过swift-package会在/ usr / lib中而不是文件实际所在的目录中查找。因此,我将llbuild所在的目录链接到了/ usr / lib目录,瞧!有效。

大多数需要执行此操作的人可能会知道如何执行目录的符号链接,但为了更彻底,这就是为我全部以root用户身份或如果需要使用sudo来解决此问题的原因:

cd /usr/lib
ln -s /Library/Developer/CommandLineTools/usr/lib/swift/pm/llbuild/llbuild.framework/ .

请注意,拖尾期在那里。那是必须的。

作为旁注,我已打开系统完整性保护,该功能禁止在/ usr / lib中进行符号链接,因此我必须重新启动并从恢复登录名(重新启动并按住Command-R)关闭SIP。可以做到这一点。

此外,请注意,这些方法都不能解决我能够从命令行实际构建swift软件包的根本问题-我现在可以使用“ swift package init”,但不能使用“ swift run”或做其他有用的事情。我发布此内容只是为了给其他人挖掘时提供一些线索,因为我看了很多地方,运气也不太好。