RUST配置loongarch64交叉编译工具链

琢磨了很长时间才弄好,其实非常简单,只是没有什么文档,一直不得其门而入,好在最终还是弄成了

一、安装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}"

RustupRustup 是一个命令行应用,能够下载并在不同版本的 Rust 工具链中进行切换 —— 如编译器 rustc 和标准库,该应用所支持的平台数量不少。事实上,rustc 本身就支持大约 56 个平台,而 rustup 实际上能够为其中14个平台管理编译器,为30个平台管理标准库。Rust 1.8 中引入的 Rustup,是一个针对 Rust 语言工具链管理器(toolchain manager),其目标是让交叉编译 Rust 代码更加简单。Mozilla 工程师 Brian Anderson 近期与我们分享了关于此的更多细节。此外,rustup 能够追踪工具链的具体版本,包括 Rust 的 nightly 版本、beta 版本和发行版本。举个例子,你可以用 rustup 检查程序在下一个 Rust 发行版下的行为。但是之前,你需要安装当前平台下的 Rust beta 版本的工具链,然后利用该工具链运行单元测试。使用 rustup 之后,可以通过执行类似下面的代码完成:$ rustup install beta $ rustup run beta cargo test再举一个例子,Anderson 介绍了如何使用 rustup 为使用 musl 标准库(而非大家常用的glibc标准库)的 Linux 版本创建静态二进制文件:$ rustup target add x86_64-unknown-linux-musl $ cargo run --target=x86_64-unknown-linux-muslrustup 还是一个正在开发中的产品,将致力于扩充支持平台的数量。特别要注意,rustup 目前还无法针对 Android 平台进行无缝交叉编译。这要求开发者手动下载 Android NDK,并针对性地创建一个“独立的工具链”。Anderson 表示,rustup 将在未来的版本中解决这个问题,增加获取并配置所要求的连接器和C语言工具链的能。另外,rustup 还计划通过 Emscripten 支持Web开发rustup 是 Anderson 开发的 multirust 的后继者,并取代了其位置。rustup 仍被看作处于 beta 阶段,但是目前已经可以安装并试用。 标签:Rustup
### 关于LoongArch64架构的交叉编译方法 对于希望针对LoongArch64架构进行开发的应用程序开发者来说,建立一个有效的交叉编译环境至关重要。此过程涉及几个关键步骤,包括但不限于获取适合的工具链、设置必要的环境变量以及验证安装的成功。 #### 获取适用于LoongArch64的GCC工具链 为了开始构建支持LoongArch64的目标平台应用程序,首先需要获得预构建好的GCC工具链。可以从GitHub仓库下载由社区维护和支持的版本[^1]: ```bash wget https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/download/v0.1/gcc-loongarch64-linux-gnu.tar.xz tar xf gcc-loongarch64-linux-gnu.tar.xz -C /opt/ ``` 这会将解压后的文件放置到`/opt/`目录下,从而创建一个新的路径用于访问这些新安装的工具。 #### 设置环境变量 完成上述操作之后,下一步就是调整系统的环境变量以便能够轻松调用新的编译器和其他相关工具。可以编辑用户的shell配置文件(如`.bashrc`),添加如下内容来指向刚刚安装工具链位置[^3]: ```bash export PATH=/opt/cross/bin:$PATH export CROSS_COMPILE=loongarch64-linux-gnu- ``` 通过这种方式定义了`$CROSS_COMPILE`前缀,使得后续命令可以直接使用而无需每次都指定完整的路径名。 #### 测试与验证 最后一步是对整个流程做一次简单的测试以确认一切正常工作。编写一段简单的小型C语言源码并尝试对其进行编译链接处理,以此检验所设臵的环境是否正确无误[^2]: ```c // hello.c #include <stdio.h> int main() { printf("Hello, LoongArch!\n"); return 0; } ``` 接着运行下面这条指令来进行实际编译动作: ```bash ${CROSS_COMPILE}gcc -o hello_loongarch hello.c ``` 如果没有任何警告或错误消息,则说明已经成功建立了基本可用的LoongArch64交叉编译环境。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值