我使用了swift package init --type executable
。
我已经尝试在路径上设置xcode命令行工具。
发生以下错误:
模型:库未加载:@ rpath / llbuild.framework / Versions / A / llbuild 引用自: / Library / Developer / CommandLineTools / usr / bin / swift-package原因: 找不到图片
答案 0 :(得分:1)
我必须进入xcode的首选项,然后在“位置”下将“命令行工具”设置为正确的版本。我第一次打开时是空白的。
答案 1 :(得分:0)
答案 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”或做其他有用的事情。我发布此内容只是为了给其他人挖掘时提供一些线索,因为我看了很多地方,运气也不太好。