琢磨了很长时间才弄好,其实非常简单,只是没有什么文档,一直不得其门而入,好在最终还是弄成了
一、安装rust交叉编译的工具链和loongarch64的标准库
# 安装loongarch64标准库
rustup target add loongarch64-unknown-linux-gnu
# 安装loongarch64的工具链
rustup toolchain install stable-loongarch64-unknown-linux-gnu
二、下载loongarch交叉编译gcc库https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases
下载名称中带有cross-tools的,不要下载带有only的,only版本不包括依赖,可能会有问题
把它解压出来,放到某个路径,我是放到/usr/cross-tools目录,下面的脚本中要声明环境变量PATH到这个目录
三、rust编译脚本
单独写一个sh脚本用来编译,比较方便调试
export LC_ALL=POSIX
export CROSS_TARGET="loongarch64-unknown-linux-gnu"
export MABI="lp64d"
export BUILD64="-mabi=lp64d"
export PATH=$PATH:/usr/cross-tools/bin
export JOBS=-j8
export CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-unknown-linux-gnu-gcc
export CC_loongarch64_unknown_linux_gnu=loongarch64-unknown-linux-gnu-gcc
export CXX_loongarch64_unknown_linux_gnu=loongarch64-unknown-linux-gnu-g++
# 到这基本完成配置了,可以直接开始编译了
cargo build --release --target "${CROSS_TARGET}"