C语言项目
使用zig cc来交叉编译:
下载zig,选择master版本:
假设需要编译mian.c,命令如下:
zig cc -target loongarch64-linux-gnu.2.36 -o main main.c
其中2.36是glibc版本,这个根据新世界系统的glibc版本自行选择,也可以使用musl静态或者动态链接,target改成
loongarch64-linux-musl
即可。
Rust项目
同样使用zig cc来交叉编译,首先安装cargo-zigbuild:
cargo install cargo-zigbuild
然后在项目中运行:
cargo zigbuild --target loongarch64-unknown-linux-gnu.2.36 --release
然而,由于Rust 1.84版本已默认启用LoongArch架构的LSX目标特性,因此采用上述方法使用最新版Rust为不支持LSX的2K0300等SoC进行LoongArch程序交叉编译将无法实现。
目前的解决方式是使用nightly channel的Rust:
RUSTFLAGS="-Ctarget-feature=-lsx" cargo +nightly zigbuild -Zbuild-std --target loongarch64-unknown-linux-gnu.2.36 --release
参考:How to remove default target feature
lsx
forloongarch64
?
Go项目
Go交叉编译比较简单:
GOOS=linux GOARCH=loong64 go build
说些什么吧!