swift - 如何在 macOS 上为 Linux 构建 swift 可执行文件

标签 swift linux macos compilation cross-compiling

我正在尝试在我的 MacBook 上为我的 Linux vServer 构建一个快速的可执行文件。

我已经尝试使用 swiftc -target "x86_64-linux test.swift ,但我的 macOS swift 编译器显示此错误:<unknown>:0: error: unable to load standard library for target 'x86_64--linux'

所以我环顾四周,发现了这个问题:Swift on OS X compiling for Linux?并尝试了这个 example script从 Apple 建立跨平台工具链。

在尝试构建一个如脚本示例文本所示的模块后,它编译了,但在我的 linux 机器上我现在得到这个错误:error while loading shared libraries: libswiftCore.so: cannot open shared object file: No such file or directory这很奇怪,因为 swift 已正确安装在我的 Linux 机器上并且可以正常工作。

那么是我在交叉编译项目的时候做错了什么,还是我的Linux机器有问题?另外我想知道,是否有更简单的方法在 macOS 上为 Linux 编译项目,例如更改 Xcode 中的build设置或其他?

提前致谢,
乔纳斯

最佳答案

这只是意味着它无法找到链接的库。如果你的libswiftCore.so位于 /usr/lib/swift/linux你可以运行 LD_LIBRARY_PATH=/usr/lib/swift/linux ./<your executable for linux>它会像魅力一样发挥作用。

你也可以设置LD_LIBRARY_PATH执行二进制文件的变量。

关于swift - 如何在 macOS 上为 Linux 构建 swift 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48242496/

相关文章:

linux - ASLR 是否启用 libc 随机化函数地址?

linux - 检测文件是否被修改,即使是在最后一秒内,没有散列?

macos - SoapUI 在 Mac OS X 上启动后变得无响应

XCode 项目导航器错误

xcode - UIAlertController 无法显示 UIAlertView

swift - RxSwift URLSession 请求已处理

ios - 在 Swift 中引用一个按钮

arrays - Swift 追加到二维数组

linux - Linux 内核如何决定使用哪个内存区域?

linux - append 到 tar 存档会删除其他所有内容