如何在 macOS 上为 Linux 构建 swift 可执行文件
How to build a swift executable for Linux on macOS
我正在尝试在我的 MacBook 上为我的 Linux vServer 构建一个 swift 可执行文件。
我已经尝试使用 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? and tried out this example script from apple to setup a cross-platform toolchain。
在尝试构建如脚本示例文本所示的模块后,它编译了,但在我的 linux 机器上我现在收到此错误:error while loading shared libraries: libswiftCore.so: cannot open shared object file: No such file or directory
这很奇怪,因为 swift 已正确安装在我的 Linux 机器上并且可以正常工作。
请问是我在交叉编译项目时做错了什么,还是我的Linux机器有问题?另外我想知道,是否有更简单的方法在 macOS 上为 Linux 编译项目,比如更改 Xcode 中的构建设置或其他?
提前致谢,
乔纳斯
这只是意味着它找不到链接库。如果您的 libswiftCore.so
位于 /usr/lib/swift/linux
,您可以 运行 LD_LIBRARY_PATH=/usr/lib/swift/linux ./<your executable for linux>
,它会非常有效。
您也可以设置 LD_LIBRARY_PATH
变量来只执行二进制文件。
我正在尝试在我的 MacBook 上为我的 Linux vServer 构建一个 swift 可执行文件。
我已经尝试使用 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? and tried out this example script from apple to setup a cross-platform toolchain。
在尝试构建如脚本示例文本所示的模块后,它编译了,但在我的 linux 机器上我现在收到此错误:error while loading shared libraries: libswiftCore.so: cannot open shared object file: No such file or directory
这很奇怪,因为 swift 已正确安装在我的 Linux 机器上并且可以正常工作。
请问是我在交叉编译项目时做错了什么,还是我的Linux机器有问题?另外我想知道,是否有更简单的方法在 macOS 上为 Linux 编译项目,比如更改 Xcode 中的构建设置或其他?
提前致谢,
乔纳斯
这只是意味着它找不到链接库。如果您的 libswiftCore.so
位于 /usr/lib/swift/linux
,您可以 运行 LD_LIBRARY_PATH=/usr/lib/swift/linux ./<your executable for linux>
,它会非常有效。
您也可以设置 LD_LIBRARY_PATH
变量来只执行二进制文件。