编译Rust for arm

作者: 刘天明

邮箱: [email protected]

博客链接: http://blog.csdn.net/bellskinling

转载请注明出处.

本博客介绍如何编译Rust for arm版本,并编译出能够运行在arm上的二进制Rust程序.

准备源码

首先,下载Rustc-1.0.0-stable, 解压, 进入解压后的目录中, 解压后的目录结构如图所示:


准备交叉编译工具

注意,编译arm版本的Rust时,需要使用到arm的交叉编译器, 我使用的交叉编译工具是arm-linux-gnueabi-gcc, 版本为4.8.3.

准备好交叉编译器后,然后根据自己的交叉编译器的类型修改./mk/cfg/下的arm-unknown-linux-gnueabi.mk或arm-unknown-linux-gnueabihf.mk.

其中"gnueabi"表示交叉编译工具是软件浮点(soft-float), "gnueabihf"表示交叉编译工具支持硬件浮点(hard-float), 读者需要根据自己的工具链进行修改.例如我的工具链是arm-linux-gnueabi-gcc, 不支持硬件浮点的,于是我需要修改文件./mk/cfg/arm-unknown-linux-gnueabi.mk.

打开./mk/cfg/arm-unknown-linux-gnueabi.mk, :

vim ./mk/cfg/arm-unknown-linux-gnueabi.mk

文件的第一行是"CROSS_PREFIX_arm-unknown-linux-gnueabi=arm-linux-gnueabi- ", 表示编译arm版本是所使用的交叉编译器的前缀, 因为我的交叉编译器是arm-linux-gnueabi-gcc, 正好和默认值一样,因此不需要修改, 读者可以根据自己的工具链进行相应的修改, 再次不再赘述.

配置

我在编译时,使用的配置是:
./configure --disable-docs --release-channel=stable --target=arm-unknown-linux-gnueabi

这里我没有指定--prefix, 编译完成后默认安装到/usr/local/下, 读者可以根据自己的需要指定安装路径.

编译

注意, 因为我在使用多线程编译时,会导致各种问题,因此我建议编译时,最好不要使用多线程.
make -j1
"-j1" 表示编译是时使用一个线程编译.
编译的时间根据电脑性能而定, 我编译时,大概使用了一个小时. 所以这段时间可以喝喝茶,然后等着好消息即可.
如果没有什么问题的话,那么最后的输出大概如下:
编译Rust for arm_第1张图片
大功告成, 看看目录下都生成了什么吧:

如图,编译结束后,生成了两个目录:
arm-unknown-linux-gnueabi
x86_64-unknown-linux-gnu
最后安装:
make install.

检验

安装好了Rust后,执行:
rustc --version

如果执行的结果如图所示,那么表示编译成功了,  .

你可能感兴趣的:(Rust)