我想在我的工作场所使用Swift语言 swift.org目前仅为Ubuntu 14.04和15.10提供二进制文件 我的工作场所使用CentOS 6.6(类似于Red Hat 6)。
我尝试运行二进制文件,产生此错误消息:
swift: error while loading shared libraries:
libedit.so.2: cannot open shared object file: No such file or directory
Ubuntu的构建说明如下:
https://github.com/apple/swift/blob/master/README.md
有人可以为CentOS 64位提供二进制文件或构建指令吗?
答案 0 :(得分:3)
我认为你最好的选择是从源代码构建Swift。我有一篇关于如何在这里做的文章:
http://www.swiftprogrammer.info/swift_centos_2.html
它适用于CentOS 6.7,但很可能它也适用于6.6。请注意,生成的软件将具有比Apple提供的Ubuntu二进制文件更有限的功能:
尽管如此,这将为您提供足够的Swift功能。如果时间允许,我将在下周左右尝试在github上提供我的二进制文件。
要记住的另一件事是Linux上的Swift在很早的阶段就在进行中。此外,即使Swift作为一种语言在Linux上可用,我们在Mac OS X和iOS上认为理所当然的很多模块,例如Foundation,远远没有在Linux上合理实现,所以不要期望能否在Linux上做到可以在Apple平台上完成的事情。这甚至适用于Apple提供的Ubuntu二进制文件。
希望这会有所帮助,一切顺利!
答案 1 :(得分:1)
我只是将libedit.so复制并重命名为libedit.so.2,我试图将swift集成到Atom编辑器中,这个错误在构建项目时是错误的,现在它工作正常,以防你在构建时遇到问题项目由于缺少头文件,你必须按如下方式进行符号链接,sudo ln -s / usr / include / sys / / usr / include / x86_64-linux-gnu / sys
答案 2 :(得分:0)
Debian和Red Hat正在为同一个API使用不同的版本
libedit.so.2
可在libedit.so.0.0.42
的rhel上找到。您可以尝试符号链接。
cd /usr/lib64
ln -s libedit.so libedit.so.2
不幸的是,这将导致下一个拦截器,至少在Centos 7上。
error: failed to launch REPL process: process launch failed: 'A' packet returned an error: -1
这是某种内部lldb错误。它似乎发生在过去(在15/12/03之前),只有当lldb无法正确连接到IOS模拟器时。
本来希望将此作为评论发布,但我不能因为没有足够的代表。也许有lldb知识的人可以提供一些关于如何从这一点继续进行的提示。
答案 3 :(得分:0)
除了mgmart的答案,您可能需要将bsdlib和symlink安装到libicu18n.so和libicuuc.so的红帽版本
在fedora上我使用了以下命令:
ln -s /usr/lib64/libicui18n.so.54 /usr/lib64/libicui18n.so.55
ln -s /usr/lib64/libicuuc.so.54 /usr/lib64/libicuuc.so.55