基于Buildroot的linux下交叉编译器的安装
2016-10-27 13:21
323 查看
环境:
windows 7
VMware 12
CentOS 6.7_x86
—–《百度百科》
因为日后会在开发板上进行项目开发,但又由于开发板的硬件限制,不能在开发板上进行本机开发,故而需要在本身Linux系统上安装交叉编译器,在Linux下进行变异后,直接移植到开发板上进行使用。
交叉编译器的安装
源码包的准备
我们这次需要的交叉编译器是直接用Buildroot的源码包,进行相关配置后就直接make即可;
在这里我下载的是目前最新版本的,下载目录是/opt/下,所以在下载前要进行权限配置,因为是个人电脑,而且是虚拟机中,为了图简单我直接在根目录下安装配置。
编译配置
在Buildroot的交叉编译器安装中,为了实现更好的人机交互,我们用make menuconfig进行配置。
在此我推荐几篇文章,博主在文章中很详细的介绍了Buildroot的一些配置选项所代表的内容,我也是看着他们的介绍才有所了解的。
buildroot的使用简介
Buildroot构建指南–Overview
切换到解压目录下后,有以下内容:
我们先进行shell的一个配置,以免等下配置时有乱码,而后直接进入menuconfig中。
我们看到的界面是这样的,类似于在windows下安装软件的时候,有窗口出现给用户进行操作。
不想太啰嗦,而且我主要目的是配置S3C2440的交叉编译器,所以根据S3C2440的CPU我们进行如下选择:
而后直接进行make,它会根据安装需要自动下载需要的包,此过程我这里持续了一个小时多,请耐心等待。
完成后,linux中就有相关的编译器,所在的目录是/opt/buildroot-2012.08/arm920t/usr/bin/下
先进行测试,用helloworld代码测试。
而后为了简单使用,我们把这个编译命令用alias进行设置。具体操作如下:
以后,就可用arm-gcc代替那个很长很长的编译命令了。
-——以上是第一次编写的全部内容——-
windows 7
VMware 12
CentOS 6.7_x86
为什么要用使用交叉编译器
交叉编译器简介 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码。—–《百度百科》
因为日后会在开发板上进行项目开发,但又由于开发板的硬件限制,不能在开发板上进行本机开发,故而需要在本身Linux系统上安装交叉编译器,在Linux下进行变异后,直接移植到开发板上进行使用。
交叉编译器的安装
源码包的准备
我们这次需要的交叉编译器是直接用Buildroot的源码包,进行相关配置后就直接make即可;
[atrouble@MiWiFi-R1CL-srv opt]$ wget https://buildroot.org/downloads/buildroot-2012.08.tar.bz2 [atrouble@MiWiFi-R1CL-srv opt]$ tar -xjf buildroot-2016.08.tar.bz2
在这里我下载的是目前最新版本的,下载目录是/opt/下,所以在下载前要进行权限配置,因为是个人电脑,而且是虚拟机中,为了图简单我直接在根目录下安装配置。
编译配置
在Buildroot的交叉编译器安装中,为了实现更好的人机交互,我们用make menuconfig进行配置。
在此我推荐几篇文章,博主在文章中很详细的介绍了Buildroot的一些配置选项所代表的内容,我也是看着他们的介绍才有所了解的。
buildroot的使用简介
Buildroot构建指南–Overview
切换到解压目录下后,有以下内容:
[atrouble@MiWiFi-R1CL-srv buildroot-2012.08]$ ls arch build Config.in.legacy docs Makefile 4000 README toolchain board CHANGES configs fs Makefile.legacy support boot Config.in COPYING linux package system
我们先进行shell的一个配置,以免等下配置时有乱码,而后直接进入menuconfig中。
[atrouble@MiWiFi-R1CL-srv buildroot-2012.08]$ export TERM=vt100 [atrouble@MiWiFi-R1CL-srv buildroot-2012.08]$ make menuconfig
我们看到的界面是这样的,类似于在windows下安装软件的时候,有窗口出现给用户进行操作。
不想太啰嗦,而且我主要目的是配置S3C2440的交叉编译器,所以根据S3C2440的CPU我们进行如下选择:
Target Architecture (ARM (little endian)) ---> Target Architecture Variant (arm920t) ---> 根据自己的CPU来选择 Target ABI (EABI) ---> Build options ---> ($(TOPDIR)/dl) Download dir ($(TOPDIR)/arm920t) Host dir [*] prefer static libraries 其它选项都不要选,如果是要设置值的地方就使用默认值 Toolchain ---> Kernel Headers (Linux 2.6 (manually specified version)) ---> (2.6.37) linux version 选定内核版本为2.6.37 ... ... [*] 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 Host utilities ---> 这里面所有的选项都不要选 Filesystem images ---> 这里面所有的选项都不要选 Bootloaders ---> 这里面所有的选项都不要选 Kernel --- 这里面所有的选项都不要选
而后直接进行make,它会根据安装需要自动下载需要的包,此过程我这里持续了一个小时多,请耐心等待。
完成后,linux中就有相关的编译器,所在的目录是/opt/buildroot-2012.08/arm920t/usr/bin/下
[atrouble@MiWiFi-R1CL-srv bin]$ ls aclocal aclocal-1.11 arm-linux-addr2line arm-linux-ar arm-linux-as arm-linux-c++ arm-linux-cc arm-linux-c++filt arm-linux-cpp arm-linux-elfedit arm-linux-g++ arm-linux-gcc arm-linux-gcc-4.5.4 arm-linux-gccbug arm-linux-gcov arm-linux-gprof arm-linux-ld arm-linux-ld.bfd arm-linux-ldconfig arm-linux-ldd arm-linux-nm arm-linux-objcopy arm-linux-objdump arm-linux-ranlib arm-linux-readelf arm-linux-size arm-linux-strings arm-linux-strip --More--
先进行测试,用helloworld代码测试。
[atrouble@MiWiFi-R1CL-srv jobss]$ /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc hello.c -o hello [atrouble@MiWiFi-R1CL-srv jobss]$ file hello hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
而后为了简单使用,我们把这个编译命令用alias进行设置。具体操作如下:
[atrouble@MiWiFi-R1CL-srv jobss]$ vim ~/.bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions alias arm-gcc='/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc'
以后,就可用arm-gcc代替那个很长很长的编译命令了。
-——以上是第一次编写的全部内容——-
相关文章推荐
- 邮件服务器 之 基于Linux和Postfix的邮件系统的web mail安装手册
- [转]浅谈windows下基于Qemu Manager 虚拟机安装 linux 等操作系统的方法
- 在Red Hat Linux5下构建LAMP网站服务平台之编译安装Apache与配置基于域名的虚拟Web主机
- 四步到位正确安装arm-linux 交叉编译器
- Linux SkyEye安装交叉编译器
- 使用Cygwin模拟Linux环境安装配置运行基于单机的Hadoop
- 终于解决在基于rpm的linux系统安装google-talkplugin_current_i386
- 解决在基于rpm的linux系统安装google-talkplugin
- 基于Linux和Postfix的邮件系统的web mail和extman安装手册
- 基于Linux和Postfix的邮件系统的web mail安装手册(转)
- 定制基于kickstart的Red Hat Enterprise Linux自动安装光盘(rhel5)
- [linux1exe元旦特供]基于wine的IE6一键安装
- 基于Fedora9.0和VMware6.5在Linux下的安装
- 基于网络linux无人值守安装2
- Linux上基于网页管理mysql安装过程中的错误点
- pxe网络安装系统---------基于windows xp做服务器(dhcp+ftp)安装linux系统
- 创建基于grub的小型Linux安装光盘
- 基于DiskOnChip在linux下的安装使用
- git学习一 基于linux ubuntu git安装与配置