buildroot编译和使用

buildrooot的编译

buildroot是一款集成的编译集合包,解决了以前交叉编译麻烦的问题。
首先,我们可以从buildroot的官网下载压缩包。https://buildroot.org/downloads/
建议最新的包,试过比较老的版本,好像编译过程中下载一些旧版本的文件,下载速度特别慢,就算挂上了梯子也无济于事。


下载过来解压之后,我们首先进行清理,有时候我们用的不是全新的包,而是别人编译好的包,我们重新进行编译,这个时候会报很多奇奇怪怪的错误.

cd buildroot
make clean

然后我们进行一些配置,

make menuconfig

这里我就盗一下图,哈哈哈,
在这里插入图片描述
选择 Target options—>Target Architecture (MIPS (little endian)),配置 Target Architecture 为 MIPS (little endian),Target Architecture Variant 则会自动配置为 (Generic MIPS32)
因为龙芯基本都是小端,所以我们选择little endian.
在这里插入图片描述
然后按两次esc返回主界面**,选择 “Toolchain”, 将 “kernel headers” 改成 机器环境的Kernel版本**(即改为编译当前Buildroot的主机内核版本)。可以在主机上通过uname -r 或者cat /proc/version 查看当前主机的内核版本。注意,一定要注意,这里的内核版本指的是你目前这台机子的内核版本,而不是龙芯跑的linux的内核版本,不要弄错,当初自以为的就弄错了.

执行 ./configure 命令根据设置的配置参数生成编译需要的Makefile文件。

./configure

最后就可以make了,这里有一个小技巧,就是make可以带一些参数,例如:

make -j8

-j参数指的是,多线程编译,后面的数字则是线程数,按理来说,在一定合适范围内,线程越多,编译速度越快(据机子配置而定).如果有靠谱的梯子,基本上几十分钟就可以完成编译了.
最后提醒一句:编译过程中要保持联网,切记!!

buildroot的使用

编译完成后,我们可以在在 /buildroot/output/host/usr/bin目录下找到我们的mipsel-linux-gcc这个编译器,我们首先要验证编译器是否正常:

 cd buildroot/output/host/usr/bin
./mipsel-linux-gcc --version

查看编译器版本
然后我们就可以通过mipel-linux-gcc来代替我们的gcc,通常我们是通过make来实现自动化编译,所以我们还要对makefile文件进行修改,修改每个Makefile,在头部将

$cc=gcc

修改为

$cc=mipsel-linux-gcc

更方便的使用:

同时,make工具使用的同时,需要调用mipsel-linux-gcc,所以我们还需要将mipsel-linux-gcc添加进系统环境变量,详情建议参考这篇文章:
添加linux系统环境变量(永久/临时)

最后

我在编译helloworld文件的时候,发现单单编译完还不能用,为了避免在某些老久系统里通常缺失一些常用库,所以我建议运行编译命令时,为了让生成的二进制程序 hello 不依赖动态库,在编译选项中加入 “-static”,如

./mipsel-linux-gcc -o ./code/hello ./code/hello.c -static 

静态编译的程序会大一些,不过,不用再担心链接库的问题了.


祝,未来一切顺利,万事舒心!

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值