前言
在Windows平台有MSYS2这个非常好用的linux模拟环境,支持大量的linux实用工具,如:busybox, grep, find, sed, awk, perl, gcc等等. 虽然MSYS2平台也提供了gcc编译器,但它的gcc工具链是i686-pc-msys,也就是说它编译出来的代码是基于MSYS的运行时环境, 而不是原生的Windows运行时(MSVCRT),所以为了编译Windows平台运行的EXE程序,还是使用MINGW提供的GCC比较好。
目的
MSYS和MINGW都提供了各自的gcc工具链,但是没有arm平台的交叉编译环境,所以自己尝试编译一个单纯的arm-none-eabi工具链。
正文
在MSYS+MINGW环境下编译gcc和在linux系统编译过程大体相同,
编译顺序也是这样的:gmp -> mpfr -> mpc ->binutils -> gcc (-> glibc -> binutils -> gcc)。
注意:不要用太新的GCC版本编译太旧的GCC源码,我之前用GCC6.3编译4.8版本的源码失败了。
我现在测试使用的是GCC5.10, 编译的源码版本为4.8.5。
1.编译gmp, mpfr, mpc
#../configure --disable-shared --host=i686-pc-mingw32 --build=i686-pc-mingw32 --prefix=/opt/mingw
#make
#make install
编译过程都比较顺利
host 指定运行这个库的环境是mingw32
buil