一、交叉编译工具链的获取
1.1.在ftp.gnu.org获取gcc工具链的相关源码,自己编译一个交叉编译工具链
1.2.使用crosstool-ng工具进行配置(crosstool-ng采用了menuconfig配置方式)
1.3.在开源的交叉工具链站点下载对应版本的交叉编译工具链,在解压配置后即可使用
二、交叉编译工具链的常用获取站点
2.1.gnu网站
https://www.gnu.org/software/
gcc工具:https://gcc.gnu.org/
gdb工具:https://www.gnu.org/software/gdb/
glibc:https://www.gnu.org/software/libc/
Binutils工具:https://www.gnu.org/software/binutils/
2.2crosstool-ng工具
2.2.1.在官网http://crosstool-ng.org/下载crosstool-ng的源码并编译安装
2.2.2运行ct-ng menuconfig,出现配置菜单,在里面可以选择目标即对应的处理器型号,以及支持的内核版本号等。
2.3.第三方编译好的交叉编译工具链
http://www.linaro.org/downloads/
http://releases.linaro.org/components/toolchain/binaries/
https://www.mentor.com/
https://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
http://www.veryarm.com/arm-none-linux-gnueabi-gcc
三、解压版(安装环境Ubuntu)的安装
3.1下载解压版
下载站点:http://www.veryarm.com/arm-none-linux-gnueabi-gcc
3.2在bash中输入一些命令
3.2.1创建文件夹
mkdir /usr/local/arm
3.2.2解压下载好的文件到创建的目录
sudo tar -xvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /usr/local/arm/
3.2.3创建工具的软链接
(1)进入工具的目录
cd /usr/local/arm/arm-2014.05/bin
(2)创建常用的工具的软链接
ln -s arm-none-linux-gnueabi-gcc arm-linux-gcc
ln -s arm-none-linux-gnueabi-g++ arm-linux-g++
ln -s arm-none-linux-gnueabi-gdb arm-linux-gdb
ln -s arm-none-linux-gnueabi-ld arm-linux-ld
ln -s arm-none-linux-gnueabi-objcopy arm-linux-objcopy
ln -s arm-none-linux-gnueabi-objdump arm-linux-objdump
ln -s arm-none-linux-gnueabi-readelf
3.2.4.配置使用环境
使用用户的bash环境配置,在用户主目录下的.bashrc后添加
export PATH=$PATH:/usr/local/arm/arm-2014.05/bin
3.2.5.重启bash终端或者重新加载配置文件
source .bashrc
3.2.6.测试是否已配置好
arm-linux-gcc –v
对于x64位机:
第一次配置使用时,arm-linux-gcc –v将出现提示无法找到对应文件或目录;
这是因为缺少了一些需要支持的32位的库;
sudo apt-get install ia32-libs
之后会出现如下面之类的一些提示
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package ia32-libs is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
lib32z1 lib32ncurses5 lib32bz2-1.0
E: Package 'ia32-libs' has no installation candidate
根据以上提示,依次执行:
sudo apt-get install ia32z1
sudo apt-get install lib32ncurses5
sudo apt-get install lib32bz2-1.0
备注:如有库要替换的请详细查看和谨慎处理,或有可能造成一些工具无法使用
--此博文若有问题,欢迎大家指出,请不吝赐教^_^