从Windows交叉编译树莓皮3 B的裸金属锈
我只是坐在窗户上,最近生锈了。在我看来,做这类事情的正确方法是随着生锈而频繁改变的,所以我希望Windows能够适应最新的情况 到目前为止,我所尝试的: 我安装了 我在手动交叉编译libcore时未经验证部分成功,但后来我转而使用推荐的从Windows交叉编译树莓皮3 B的裸金属锈,windows,rust,llvm,cross-compiling,raspberry-pi3,Windows,Rust,Llvm,Cross Compiling,Raspberry Pi3,我只是坐在窗户上,最近生锈了。在我看来,做这类事情的正确方法是随着生锈而频繁改变的,所以我希望Windows能够适应最新的情况 到目前为止,我所尝试的: 我安装了 我在手动交叉编译libcore时未经验证部分成功,但后来我转而使用推荐的xargo,其功能(我读到)最终将被包括在Cargo中。虽然我对其中的任何一个都不太了解,但我希望能够进入编写/运行代码的阶段,然后也许我可以更好地理解编译 使用,我能够使“aarch64”目标构建工作,以生成.o文件() 这一部分似乎证实了: $file tar
xargo
,其功能(我读到)最终将被包括在Cargo中。虽然我对其中的任何一个都不太了解,但我希望能够进入编写/运行代码的阶段,然后也许我可以更好地理解编译
使用,我能够使“aarch64”目标构建工作,以生成.o文件()
这一部分似乎证实了:
$file target/aarch64-raspi3-none-elf/release/deps/rust_rasp-ed0c2377e0a7df81.o
target/aarch64-raspi3-none-elf/release/deps/rust_-rasp-ed0c2377e0a7df81.o:elf 64位LSB可重定位,ARM aarch64,版本1(SYSV),未剥离
当我尝试使用链接器时,我得到:
$arm none eabi gcc-O0-mfpu=vfp-mfloat abi=hard-MARK=armv6zk-mtune=arm1176jzf-s-nostartfiles目标/aarch64-raspi3-none-elf/release/deps/rust_-rasp-ed0c2377e0a7df81.o-o内核.elf目标/aarch64-raspi3-none-elf/release/deps/rust_-rasp-ed0C23777E0A7DF81.o:无法识别文件格式:无法识别文件格式
collect2.exe:错误:ld返回了1个退出状态
而且#rust IRC聊天室助手告诉我rpi3是AARC64,而不是arm,所以我需要找到一个AARC64链接器…我想它正在工作!我学到的东西:
很好xargo
- rpi3与rpi2的差异足以导致我在工具选择方面出现问题
不关心Rustop工具链的默认设置,因为我没有要求它为我链接,它自己选择工具链xargo
- 我需要的是AARC64,而不是arm。为此,我使用linaro aarch64 mingw32下载、解包,并将其bin文件夹添加到我的路径中。然后aarch64工具很容易从博客中进行调整