【发布时间】:2018-11-30 00:53:27
【问题描述】:
我想将我在 macOS 上的 Rust 应用程序交叉编译到 Raspberry Pi 2。我搜索了很多,但没有找到可行的解决方案。我尝试的最后一个解决方案是关注这个answer,但我无法让它工作。
- macOS 版本:10.13.5 (High Sierra)
- 锈蚀版本:1.11.0
- 货运版本:1.26.0
我做了什么:
- 我克隆了raspberrypi/tools
- 已安装 arm-unknown-linux-gnueabihf 和 armv7-unknown-linux-gnueabihf 工具链通过 rustup
-
在我的项目的根目录中创建了
.cargo/config文件,内容如下[target.armv-unknown-linux-gnueabihf] linker = "/Users/user/Documents/Programming/RustProjects/hello-pi/../../Utils/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc" 然后我运行
cargo build --target=arm-unknown-linux-gnueabihf
我收到以下错误:
linking with /Users/user/Documents/Programming/RustProjects/hello-pi/../../Utils/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc failed: exit code: 126
....
cannot execute binary file
我似乎无法在我的 macOS 机器上运行 ...gcc 二进制文件。将我的 Rust 应用程序从 macOS 交叉编译到 Raspberry Pi 2 的 ARM 架构的正确方法是什么?
【问题讨论】:
-
github.com/raspberrypi/tools 中的工具是为 Linux 编译的,只能在 Linux 上运行。您可能需要自己构建交叉编译器。
-
我以前不知道,感谢您的澄清。所以基本上我需要为 Mac OS 编译
/arm-linux-gnueabihf-gcc吗?然后使用我的个人编译版本作为链接器?所以也许可以使用crosstool-ng 之类的东西?
标签: macos raspberry-pi rust