si692828681 发表于 2012-12-30 13:15:37

贴一下自己的gnu工具链的编译参数 | gcc4.7 | cortex-m4,支持fpu

本帖最后由 si692828681 于 2012-12-30 13:17 编辑

今天突然想保存一下编译参数还有各部分的版本 ------ 弄到合适的太不容易了,当时是翻了好多文章,编译了好多次才通过的。。。(保存在自己电脑里,容易丢,所以贴在论坛里,也许还会有朋友用得着;还可以赚积分,现在太低了,好友都加不了。。。)
-------------------------------------------------------------------------------------------------------------------------------------

1. 编译 binutils
cd binutils-2.22/
./configure --target=arm-none-eabi --prefix=/home/tutu/tools/ --enable-interwork --enable-multilib --disable-nls --disable-libssp
make all
make install
cd ..

2. 编译 gcc with newlib (这里要分三步)

    1)
    cd gcc-4.7.1/
    make objdir
    cd objdir
    ../configure --target=arm-none-eabi --prefix=/home/tutu/tools/ --enable-interwork --enable-multilib --enable-languages=c --with-newlib --with-headers=../../newlib-1.20.0/newlib/libc/include/ --disable-libssp --disable-nls --with-system-zlib --with-float=hard --with-fpu=fpv4-sp-d16 --with-cpu=cortex-m4 --with-mode=thumb
    make all-gcc
    make install-gcc
    cd ../..

    2)
    cd newlib-1.20.0/
    ./configure --target=arm-none-eabi --prefix=/home/tutu/tools/ --enable-interwork --enable-multilib --disable-libssp --disable-nls --with-float=hard --with-fpu=fpv4-sp-d16 --with-cpu=cortex-m4 --with-mode=thumb
    make all
    make install
    cd ..
   
    3)
    cd gcc-4.7.1/objdir/
    make all
    make install
    cd ../..

3. 编译 gdb
cd gdb-7.4/
./configure --target=arm-none-eabi --prefix=/home/tutu/tools/ --enable-interwork --enable-multilib --disable-libssp --disable-nls
make all
make install
cd ..

-------------------------------------------------------------------------------------------------------------------------------------
注意点:
--prefix=/home/tutu/tools/ 这是我安装的目录,要更换成你要安装的目录

有几个参数的意思,引用别人文章里的:
–enable-interwork: Allows ARM and Thumb code to be used
–enable-multilib: Build multible versions of some libs. E.g. one with soft float and one with hard
–disable-nls: Tells gcc to only support American English output messages
–disable-libssp: Don’t include stack smashing protection
–with-system-zlib: Fixes the error: configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES


qwe2231695 发表于 2013-1-28 01:03:37

哥来支持妹子

笑笑我笑了 发表于 2013-1-28 01:38:32

我的和LZ妹子的略有差异啊

LZ妹子的终端很漂亮,还可以分屏

si692828681 发表于 2013-1-28 13:41:14

笑笑我笑了 发表于 2013-1-28 01:38 static/image/common/back.gif
我的和LZ妹子的略有差异啊

LZ妹子的终端很漂亮,还可以分屏

偶用的是 urxvtc + tmux
tmux就是分屏的,横向纵向任意可以分任意个pane,还支持任意多个的window和session

笑笑我笑了 发表于 2013-1-28 14:07:53

si692828681 发表于 2013-1-28 13:41 static/image/common/back.gif
偶用的是 urxvtc + tmux
tmux就是分屏的,横向纵向任意可以分任意个pane,还支持任意多个的window和sessi ...

LZ有没有用过这个编译器出点啥来啊

si692828681 发表于 2013-1-28 14:21:25

笑笑我笑了 发表于 2013-1-28 14:07 static/image/common/back.gif
LZ有没有用过这个编译器出点啥来啊

算法都还在电脑上实验,还木有移到stm32上
只测试了一下demo,板子OK
拿自己的一些代码编译后反汇编查看,编译得还挺满意。

dr2001 发表于 2013-1-28 14:46:42

如果只是针对CortexM4并且只支持硬件FPU的话,完全可以关闭MultiLib。你给的那堆with已经足够了,默认编译出来的库就是给硬浮点用的。用multilib反而会麻烦。

dr2001 发表于 2013-1-28 14:49:40

笑笑我笑了 发表于 2013-1-28 01:38 static/image/common/back.gif
我的和LZ妹子的略有差异啊

LZ妹子的终端很漂亮,还可以分屏

不能只看multilib的参数,还要看arm-none-eabi-gcc -v的输出参数。

configure时候的with参数和multilib的参数互相配合决定了newlib编译时候的最终参数。基本上是这样。

笑笑我笑了 发表于 2013-1-28 14:57:43

dr2001 发表于 2013-1-28 14:49 static/image/common/back.gif
不能只看multilib的参数,还要看arm-none-eabi-gcc -v的输出参数。

configure时候的with参数和multilib ...

我的是脚本自动编译出来的,不是我手工设置的啊

si692828681 发表于 2013-1-28 15:08:05

dr2001 发表于 2013-1-28 14:46 static/image/common/back.gif
如果只是针对CortexM4并且只支持硬件FPU的话,完全可以关闭MultiLib。你给的那堆with已经足够了,默认编译 ...

是耶~~~谢谢前辈提醒
页: [1]
查看完整版本: 贴一下自己的gnu工具链的编译参数 | gcc4.7 | cortex-m4,支持fpu