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

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


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

buildroot编译和使用相关推荐

  1. buildroot 编译问题

    buildroot 编译的时候,出现 g++: internal compiler error: Killed (program cc1plus) 这个是因为虚拟机内存不足的原因, 加上一些内存即可 ...

  2. buildroot 编译qt ERROR: Feature ‘xxxxx‘ was enabled, but the pre-condition ‘YYYYY‘ ‘ZZZZZ‘ failed

    遇到buildroot编译qt,configure时出错ERROR: Feature 'xxxxx' was enabled, but the pre-condition 'YYYYY' && ...

  3. Buildroot 编译Tips

    编译最小系统 默认情况下,buildroot 都会编译第三方依赖库,耗费很久,如何编译五脏俱全的固件呢,它也提供了相关命令 加载默认配置文件,make xxx_defconfig 不编译第三方库, m ...

  4. X2000 halley5开发板,buildroot编译image

    使用君正提供的SDK 1. 执行token.sh脚本,安装必要工具包 sudo apt-get install -y g++sudo apt-get install -y autopointsudo ...

  5. buildroot 编译项目出现的一些error

    [Makefile:3547: libgio_2_0_la-gdbusauth.lo] Error 1 error gdbusauth.c: In function '_g_dbus_auth_run ...

  6. SAM9X60 curiosity开发板,buildroot编译sdcard.img

    参考Microchip官方视频,操作 不同的buildroot版本,在dl目录下载的软件包版本不同,可能会引起不同的编译过程,出错等 1. 下载buildroot,按照视频教程buildroot章节下 ...

  7. Buildroot编译树莓派教程

    下载源码 wget https://buildroot.uclibc.org/downloads/buildroot-2016.11.2.tar.gz 解压 tar -xvf buildroot-20 ...

  8. 003 使用buildroot编译树莓派zero w内核与根文件系统

    前言 我打算用树莓派为平台做一个linux驱动与应用开发的系列分享,这里先从制作内核和文件系统开始吧! 后面每个知识点我尽量单独拿出来分享,方便搜索 环境 主机:Ubuntu20.04 平台:树莓派z ...

  9. buildroot编译出错(2020-09-27)

    开发主机:Linux fly-vm 4.15.0-118-generic #119~16.04.1-Ubuntu SMP Tue Sep 8 14:54:40 UTC 2020 x86_64 x86_ ...

最新文章

  1. sgi---1 vector
  2. 834 树中距离之和
  3. Spring webflow:上传多个文件
  4. java 集成 kafka 0.8.2.1 适配jdk1.6
  5. 游戏建模用什么软件,学游戏建模哪里好?
  6. .netcore excel导出回车换行_必须掌握的回车键Enter应用技巧,100%干货
  7. 操作系统知识点大总结【进程同步与互斥】
  8. 无人驾驶(如何自己构建hdmap)
  9. 4.创建并调用自动控制器(api)
  10. 百度深度学习工程师认证(已通过)
  11. 资产标签二维码方案设计
  12. 百度地图开发 —— 去除百度地图左下角Logo
  13. ocelot和nginx比较_针对 Ocelot 网关的性能测试
  14. TensorFlow 2.9的零零碎碎(五)-模型编译
  15. php js sdk 签名算法,签名算法 · PAYJS API 开发文档
  16. 算法:Smith数问题
  17. LeetCode 1.Minimum Path Sum 2.Unique Paths I and II
  18. 2011年B题交通巡警第一问的练习与实现
  19. 甜甜C语言——sscanf()函数
  20. 华尔街日报专访李彦宏:明年年底前,百度将打造一辆无人公车

热门文章

  1. html 单选 lable,label 标签的用法,点label选中单选、复选框或文本框
  2. 小留学生一部感觉不错的片子
  3. google财经板块股票信息查看的猜想
  4. 酒店智能联网门锁解决方案
  5. App渠道统计方法全面解析 总有一种适合你
  6. cisco思科实现MPLS 虚拟专用网
  7. 军工企业信息化与信息安全概要
  8. 《程序员的数学思维修炼》 读书笔记
  9. 烦立停第43期:分手!狗庄虐我千百遍,我待狗庄如初恋!
  10. 常见蛋白质种类_蛋白粉有哪些种类?适合日常补充的有哪种?