Rust交叉編譯arm64 linux環境設置

系統環境

wsl debian11

目標環境

arm64 musl 即 aarch64-linux-musl (小愛音箱pro的系統就是基於openwrt,對應的平臺就是這個)

步驟

安裝target

rustup target install aarch64-unknown-linux-musl

下載musl toolchain

musl.cc可以輕易找到對應平臺的toolchain
我的目標平臺是aarch64-linux-musl,從首頁進去往下拉第一個tgz文件就是aarch64-linux-musl-cross.tgz
下載下來解壓到/opt下,並把其bin目錄加入到當前用戶的PATH環境變量中

wget https://musl.cc/aarch64-linux-musl-cross.tgz
sudo tar -xvf aarch64-linux-musl-cross.tgz  -C /opt/
echo 'PATH=/opt/aarch64-linux-musl-cross/bin/:$PATH' >> ~/.bashrc
source ~/.bashrc

增加cargo配置

修改~/.cargo/config,增加對應平臺的linker

nano ~/.cargo/config

config內容如下,前source.crates-io和source.sjtu是配置cargo鏡像源,已經配置了的可以不加。最後兩行就是對應平臺的配置

[source.crates-io]
replace-with = 'sjtu'
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
[target.aarch64-unknown-linux-musl]
linker = "aarch64-linux-musl-ld"

然後就可以執行對應平臺的編譯命令了

cargo build --release --target aarch64-unknown-linux-musl

參考文獻:rust 交叉編譯樹莓派程序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章