用buildroot制作交叉编译器
来源:互联网 发布:淘宝实名资料购买 编辑:程序博客网 时间:2024/05/16 07:41
以前做文件系统的时候制作过交叉编译器,现在重新做一遍总结一下。
认识交叉编译器
交叉编译器简介 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码。比如我们在pc下编译的代码,想要在arm开发板上运行,就需要用交叉编译器编译pc端的代码,然后才能在arm板上运行。
制作交叉编译器过程
把buildroot上传到opt目录下
我这里有.bin文件,也可以直接百度下载buildroot压缩包,重要的是后面的配置过程,有需要的朋友也可以联系我。
用rz
命令从pc端传文件过来
[fanmaolin@Centeros ~]$ cd /opt/[fanmaolin@Centeros opt]$ lsbuildroot-2012.08 busybox-1.20.2 fs.conf roofts toolbuildroot-2012.08-LingYunEmbLab-v1.2.0.bin busybox-1.20.2.tar.bz2 rh rootfs-ubifs.bin
buildroot-2012.08-LingYunEmbLab-v1.2.0.bin这就是我们需要的.bin文件
这里有一个细节需要注意,如果你的/opt/目录没有权限,你需要给一个权限才能传文件到里面,并且给.bin文件执行权限a+x
[fanmaolin@Centeros ~]$ sudo chmod 777 /opt/[fanmaolin@Centeros opt]$ chmod a+x buildroot-2012.08-LingYunEmbLab-v1.2.0.bin
安装buildroot
[fanmaolin@Centeros opt]$ ./buildroot-2012.08-LingYunEmbLab-v1.2.0.bin
如果在过程中提示缺少东西,可以用sudo yum install xxx
安装相应的rpm包
编译完成后进入/opt下查看会生成
buildroot-2012.08 文件夹
查看里面的文件
[fanmaolin@Centeros opt]$ cd buildroot-2012.08[fanmaolin@Centeros buildroot-2012.08]$ lsarm920t boot CHANGES configs dl fs Makefile package targetboard buildroot-2012.08-packes Config.in COPYING docs linux output support toolchain
Linux服务器上的buildroot源码包安装完成
配置交叉编译器
在make menuconfig里面,回车表示进入,空格进行选择,两下esc退出
[fanmaolin@Centeros buildroot-2012.08]$ export TERM=vt100[fanmaolin@Centeros buildroot-2012.08]$ make menuconfig
Target Architecture (ARM (little endian)) —>
Target Architecture Variant (arm920t) —> 根据你的开发板选择
Target ABI (EABI) —>
Build options —>
(
[*] prefer static libraries
其他用默认值
Toolchain —>
Kernel Headers (Linux 3.0.x kernel headers) —> 选择你自己的内核版本
… …
[*] Enable compiler tls support
[*] Enable MMU support
[*] Use software floating point by default
[*] Enable large file (files > 2 GB) support
[*] Enable IPv6 support
[*] Enable RPC support
[*] Enable WCHAR support
[*] Enable C++ support
其他用默认值
System configuration —>
Init system (None) —> 把Busbyox编译去掉
其他用默认值
Package Selection for the target —>
。。。
Libraries —>
Compression and decompression —>
[*] lzo
-*- zlib
其他用默认值
剩下的不需要管,用默认值
选择完成保存后退出
make编译
*** End of the configuration.*** Execute 'make' to start the build or try 'make help'.[fanmaolin@Centeros buildroot-2012.08]$ make。。。耐心等待
查看编译出来的交叉编译器工具链
[fanmaolin@Centeros buildroot-2012.08]$ ls arm920t/usr/bin/aclocal arm-linux-ranlib arm-unknown-linux-uclibcgnueabi-nmaclocal-1.11 arm-linux-readelf arm-unknown-linux-uclibcgnueabi-objcopyarm-linux-addr2line arm-linux-size arm-unknown-linux-uclibcgnueabi-objdumparm-linux-ar arm-linux-strings arm-unknown-linux-uclibcgnueabi-ranlibarm-linux-as arm-linux-strip arm-unknown-linux-uclibcgnueabi-readelfarm-linux-c++ arm-unknown-linux-uclibcgnueabi-addr2line arm-unknown-linux-uclibcgnueabi-sizearm-linux-cc arm-unknown-linux-uclibcgnueabi-ar arm-unknown-linux-uclibcgnueabi-stringsarm-linux-c++filt arm-unknown-linux-uclibcgnueabi-as arm-unknown-linux-uclibcgnueabi-striparm-linux-cpp arm-unknown-linux-uclibcgnueabi-c++ autoconfarm-linux-elfedit arm-unknown-linux-uclibcgnueabi-cc autoheaderarm-linux-g++ arm-unknown-linux-uclibcgnueabi-c++filt autom4tearm-linux-gcc arm-unknown-linux-uclibcgnueabi-cpp automakearm-linux-gcc-4.5.4 arm-unknown-linux-uclibcgnueabi-elfedit automake-1.11arm-linux-gccbug arm-unknown-linux-uclibcgnueabi-g++ autoreconfarm-linux-gcov arm-unknown-linux-uclibcgnueabi-gcc autoscanarm-linux-gprof arm-unknown-linux-uclibcgnueabi-gcc-4.5.4 autoupdatearm-linux-ld arm-unknown-linux-uclibcgnueabi-gccbug ifnamesarm-linux-ld.bfd arm-unknown-linux-uclibcgnueabi-gcov ldconfigarm-linux-ldconfig arm-unknown-linux-uclibcgnueabi-gprof lddarm-linux-ldd arm-unknown-linux-uclibcgnueabi-ld libtoolarm-linux-nm arm-unknown-linux-uclibcgnueabi-ld.bfd libtoolizearm-linux-objcopy arm-unknown-linux-uclibcgnueabi-ldconfig m4arm-linux-objdump arm-unknown-linux-uclibcgnueabi-ldd[fanmaolin@Centeros buildroot-2012.08]$ ls arm920t/usr/libgcc libgmp.la libgmp.so.10 libltdl.la libltdl.so.7 libmpc.la libmpc.so.2 libmpfr.la libmpfr.so.4ldscripts libgmp.so libgmp.so.10.0.5 libltdl.so libltdl.so.7.2.2 libmpc.so libmpc.so.2.0.0 libmpfr.so libmpfr.so.4.1.1
测试
编写一个简单的hello world程序
[fanmaolin@Centeros c]$ gcc hello.c [fanmaolin@Centeros c]$ ./a.out Hello World![fanmaolin@Centeros c]$ /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc -static hello.c -o hello[fanmaolin@Centeros c]$ file hello //查看文件属性,是ARMhello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
下载到编译器上就可以在开发板上编译运行
- 用buildroot制作交叉编译器
- Buildroot-2012.08交叉编译器制作
- 使用buildroot制作交叉编译器
- 交叉编译器的制作buildroot-2011.11
- Liunx-使用Buildroot工具制作交叉编译器
- buildroot编译交叉编译器
- Arm9+Linux fl2440 用buildroot-2012.08.tar.bz2制作交叉编译器
- buildroot制作交叉编译工具链
- 使用buildroot制作交叉编译工具
- 交叉编译器制作流程
- 交叉编译器制作流程
- 制作交叉编译器
- 交叉编译器制作
- 交叉编译器制作
- 交叉编译器的制作
- 交叉编译器的制作
- 交叉编译器制作教程
- 交叉编译器的制作
- xamarin android 如何创建一个服务
- 设计模式-状态模式
- 图像增强(锐化)相关算子
- 系统开发简易流程(升级版)
- Nginx + Tomcat 动静分离实现负载均衡
- 用buildroot制作交叉编译器
- Vue.js 计算属性
- oracle 高级函数
- 【腾讯TMQ】自动化测试平台实践几点经验总结
- kubernetes 简单集群搭建(2台虚拟机)
- B
- 条件注释判断ie版本
- banner
- Entropy(哈夫曼树--优先级队列)