目录
问题描述
本文适用于想要更改released的arm-linux-gcc
的一些配置选项,来生成自己独特配置的交叉编译器,比如说 arm-linux-aarch64-gfortran
等等。
因为Linaro
公司发行的所有arm-linux-gnueabihf-
系列的交叉编译器的默认配置中,其中一项configure
是--with-mode=thumb
,而我需要gcc
将所有的库文件都编译为arm
版本,因此只好自己编译gcc
。
宿主机环境
我的宿主机是Linux Ubuntu 32
位,编译目标是生成--with-mode=arm
的32位交叉编译器:arm-linux-gnueabihf-gcc, arm-linux-gnueabihf-g++, arm-linux-gnueabihf-gfortran
。
- 本博客也同样适用于64位的环境,大家可以放心复制粘贴(狗头)。话不多说,开始硬核编译
源码编译
1. 编译环境安装
在正式进入编译之前,需要对宿主机进行安装一些环境,需要的环境有gcc, make, gawk
,这些包的话直接install
就好了,不必源码安装:
sudo apt-get install gcc make gawk
确保这些环境的存在我们就可以正式开始安装了。
2. 依赖包及GCC源码下载
在确保宿主机有网的情况下,我们需要下载以下的gcc
依赖包,gcc
源码来源于Linaro
,可以根据自己的需要自行下载需要的版本,我这里随便选了个gcc 5.5
,网址Linaro GCC:
mkdir build-arm-gcc
cd build-arm-gcc
wget http://ftpmirror.gnu.org/binutils/binutils-2.24.tar.gz
wget https://releases.linaro.org/components/toolchain/gcc-linaro