下载:http://code.google.com/p/qp-gcc/downloads/list
反馈:http://code.google.com/p/qp-gcc/issues/list
特点:
① 静态编译,不依赖libgcc_s_dw2-1.dll
② 静态iconv库,不依赖libcharset-1.dll和libiconv-2.dll
编译方法:
一、编译gmp
mkdir build
cd build
ABI=32 ../configure --disable-shared && make && make install
二、编译mpfr
mkdir build
cd build
../configure --with-gmp=/local --disable-shared && make && make install
三、编译iconv
../../src/iconv/configure --prefix=/iconv --disable-shared CPPFLAGS="-mno-cygwin -Wall" CFLAGS="-mno-cygwin -O2" CXXFLAGS="-mno-cygwin -O2" LDFLAGS="-mno-cygwin"
make && make install
四、编译GCC
① 修改MSYS目录下的/etc/fstab文件,添加一行:/qp /qp,注意,/qp目录要保存不存在!可以用:cmd //c echo /qp 测试,如果输出/qp则设置正确。
② 配置:../../src/gcc/configure --prefix=/qp --build=mingw32 --enable-languages=c,c++ --enable-cxx-flags='-fno-function-sections -fno-data-sections' --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-threads --enable-libgomp --disable-nls --disable-shared --disable-symvers --disable-libstdcxx-pch --disable-win32-registry --disable-sjlj-exceptions --with-dwarf2 --with-gmp=/local --with-mpfr=/local --with-pkgversion='QP mingw32' --with-bugurl=http://www.qpsoft.com/blog/guestbook.php
③ 只编译all-gcc:make all-gcc
④ 修改/etc/fstab文件,删除刚才添加的行:/qp /qp
⑤ 创建/qp目录,并创建/qp/mingw32目录,将/mingw/include和/mingw/lib目录分别拷贝到/qp/mingw32目录下。同时将/mingw/lib/gcc/mingw32/4.4.x下的所有文件(不含文件夹)拷贝到/mingw/lib下。
⑥ 编译标准库及其他库:make all-target-libstdc++-v3 all-target-libssp all-target-libgcc all-target-libgomp
⑦ 安装:make DESTDIR=/qpsoft install-gcc install-target-libstdc++-v3 install-target-libssp install-target-libgcc all-target-libgomp
⑧ strip掉调试信息
五、注意事项
① 一定要使用msys自带的make,否则会出现奇怪的路径错误
② 启用--enable-libgomp后,要保证pthread库已安装