我正在使用
Windows 10.我想交叉编译一个Rust程序,以便在armv7-unknown-linux-gnueabihf上运行. (armv7-unknown-linux-muscl也可以接受,但似乎没有.)
这是我的步骤:
>安装rustup
> rustup toolchain install stable-x86_64-pc-windows-gnu
> rustup toolchain默认stable-x86_64-pc-windows-gnu
> rustup target添加armv7-unknown-linux-gnueabihf
>编辑我的./cargo/config文件以包含:
[build]
target = "armv7-unknown-linux-gnueabihf"
>货物建造
这可以很好地编译所有内容,但是当涉及链接时会出现此错误:
error: could not exec the linker `cc`: The system cannot find the file specified. (os error 2)
据我所知,这是因为Rust没有自己的链接器而是使用GCC.显然我需要自己提供并将其添加到./cargo/config文件中:
[target.armv7-unknown-linux-gnueabihf]
linker = "c:/path/to/my/gcc/cross/compiler"
是对的吗?如果是这样,我可以在地球上下载这样的Windows交叉编译器,为什么不进行生锈安装呢?必须自己编译GCC的交叉编译版本是交叉编译C/C++程序的最大痛苦. Rustup真的不会让这更容易吗?