搜索
bottom↓
回复: 8

在mingw下编译arm-none-eabi-gcc 5.1.0

[复制链接]

出0入0汤圆

发表于 2015-7-1 10:54:25 | 显示全部楼层 |阅读模式
在mingw下编译 arm-none-eabi-gcc5.1.0
Jeff Liang
此内容发布于阿莫电子论坛,其他转载请注明。
---------------------------------------------------------------------------------------
因为最近在看nuttx,编译的时候需要gcc,而keil MDK可以支持gcc编译器,网上看到的都是4.x的,遂自己编译下gcc5.1
需要gcc(4.x,5.x)编译linux内核的,我以前回复过一个帖子,可以参考。如有需要我可以开新贴发编译过程。

一、准备需要的源码包
binutils-2.25.tar.bz2
gcc-5.1.0.tar.bz2
newlib-2.2.0.20150423.tar.gz (自行改名为newlib-2.2.0.tar.gz)
gdb-7.9.1.tar.xz

gcc编译依赖mpc,mpfr,gmp
gmp-5.1.3.tar.xz
mpc-1.0.3.tar.gz
mpfr-3.1.2.tar.bz2

二、设置环境变量
    所有的文件都放在了mingw的source文件夹下,下面的可以根据自己的需求调整
export TARGET=arm-none-eabi
export PREFIX=/mingw/arm-none-eabi-5.1.0/
export BIN_PATH=/mingw/arm-none-eabi-5.1.0/bin

三、解压缩有的文件(当前路径是/mingw/source)
tar vxf binutils-2.25.tar.bz2
tar vxf gcc-5.1.0.tar.bz2
tar vxf newlib-2.2.0.tar.gz
tar vxf mpc-1.0.3.tar.gz
tar vxf mpfr-3.1.2.tar.bz2

解压xz文件,然后再解压
xz -d *.xz
tar vxf gmp-5.1.3.tar
tar vxf gdb-7.9.1.tar

把newlib改名
mv newlib-2.2.0.20150423 newlib-2.2.0

gcc编译依赖mpc,mpfr,gmp,但是不用提前编译,只要移动mpc,mpfr,gmp到gcc目录即可
mv mpc-1.0.3  gcc-5.1.0/mpc
mv mpfr-3.1.2 gcc-5.1.0/mpfr
mv gmp-5.1.3  gcc-5.1.0/mpc

四、建立下面的文件夹
mkdir build-binutils
mkdir build-gcc
mkdir build-newlib
mkdir build-gdb

五、可能的错误和多线程编译
可能会提示找不到libiconv.la,这是个编译mingw的时候的错误,最近的更新后可能已经修复。
在提示出错的la文件中,修改为正确的libiconv.la的路径
# Libraries that this one depends upon.
# dependency_libs=' -L/mingw/lib /home/keith/staged/mingw32/lib/libiconv.la'
dependency_libs=' -L/mingw/lib'

make多线程编译的时候,比如make all -jX,X是根据自己CPU的情况确定,线程+核数目,我的i7(4核4线程)就设置为8
有时候会出现僵死的状况,结束掉make进程,然后单线程编译,来回切换

六、编译binutils
cd build-binutils
../binutils-2.25/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --enable-static --disable-shared --disable-nls
make all
make install

七、第一次编译gcc
这里的--with-pkgversion="nuttx arm 5.1.0"可以改为自己想设定的
编译过程中可能会提示内存不足错误,继续编译即可,我的laptop(8G内存)上提示了好几次

cd ../build-gcc
LD=-static ../gcc-5.1.0/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --disable-nls --disable-threads --with-gcc --with-gnu-as --with-gnu-ld --with-dwarf2 --disable-shared  --disable-libssp --disable-libstdcxx-pch --disable-libmudflap --disable-libgomp --with-newlib --with-headers=../newlib-2.2.0/newlib/libc/include/ --enable-languages="c,c++" --with-pkgversion="nuttx arm 5.1.0"

make all-gcc
make install-gcc

编译完后,把arm-none-eabi-gcc加入搜索路径,因为编译newlib需要
export PATH=$PATH:$BIN_PATH

八、编译newlib
cd ../build-newlib
CC_FOR_TARGET=arm-none-eabi-gcc ../newlib-2.2.0/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --with-newlib --enable-newlib-hw-fp --disable-nls
make all
make install

九、完整编译gcc
cd ../build-gcc
make all
make install

十、编译gdb
cd ../build-gdb
../gdb-7.9.1/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --with-python=no --enable-static --disable-shared
make all
make install


至此,所有的都编译完成了

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出215入118汤圆

发表于 2015-7-1 11:23:39 | 显示全部楼层
楼主可不可以共享一个编译好的包?造福坛友。编译的过程太折腾了。

出0入0汤圆

 楼主| 发表于 2015-7-1 16:35:31 | 显示全部楼层
http://pan.baidu.com/s/1eQxsOoy

出0入0汤圆

 楼主| 发表于 2015-7-1 16:39:59 | 显示全部楼层
snowy 发表于 2015-7-1 11:23
楼主可不可以共享一个编译好的包?造福坛友。编译的过程太折腾了。

http://pan.baidu.com/s/1eQxsOoy 传到百毒盘了

出215入118汤圆

发表于 2015-7-2 19:31:33 | 显示全部楼层
usecool 发表于 2015-7-1 16:39
http://pan.baidu.com/s/1eQxsOoy 传到百毒盘了

谢谢楼主!

出0入0汤圆

发表于 2015-7-2 23:17:53 | 显示全部楼层
mdk能用gcc?

出0入0汤圆

 楼主| 发表于 2015-7-3 00:10:11 | 显示全部楼层

可以使用,我以前还用mdk调试eCos的代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-7-3 01:44:16 | 显示全部楼层
是否支持cortex M4

出0入0汤圆

 楼主| 发表于 2015-7-3 08:50:09 | 显示全部楼层
DWDM 发表于 2015-7-3 01:44
是否支持cortex M4

|mcpu=cortex-a7
|mcpu=cortex-a8|mcpu=cortex-a9|mcpu=cortex-a15
|mcpu=cortex-a12|mcpu=cortex-a17
|mcpu=cortex-a15.cortex-a7
|mcpu=cortex-a17.cortex-a7
|mcpu=cortex-a53
|mcpu=cortex-a57
|mcpu=cortex-a57.cortex-a53
|mcpu=cortex-a72
|mcpu=cortex-a72.cortex-a53
|mcpu=exynos-m1
|mcpu=xgene1
|mcpu=cortex-m1.small-multiply
|mcpu=cortex-m0.small-multiply
|mcpu=cortex-m0plus.small-multiply
|mcpu=marvell-pj4
|mcpu=generic-armv7-a

|march=armv7-a|mcpu=cortex-a5
|march=armv7ve       
|march=armv7-m|mcpu=cortex-m3
|march=armv7e-m|mcpu=cortex-m4|mcpu=cortex-m7
|march=armv6-m|mcpu=cortex-m0
|march=armv8-a       
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 23:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表