这两天在尝试编译c和c++运行库,发现如果要编译自身带的libstdc++库的话,需要将c:/mingw/include和c:/mingw /lib文件夹拷贝到c:/msys/mingw32/mingw下才可以!虽然编译成功了,但在测试--std=c++0x时失败了,和MinGW TDM编译版本是一样的问题。看来是libstdc++这个库自身的毛病!
于是决定使用mingw-w64-crt版本:好在编译libstdc++库已经成功,了却一桩心愿!
附编译libstdc++方法:
../configure --target=mingw32 --program-prefix="" --enable-languages=c,c++ --enable-threads=win32 --enable-libstdcxx-debug --disable-nls --disable-shared --disable-libstdcxx-pch-pch make all-gcc && make all-target-libstdc++-v3 make install-gcc && make install-target-libstdc++-v3
下面是我总结的新的编译GCC 4.4的方法,与前一篇文章的方法略有出入,供参考!
一、按顺序解压msys最新版
msysCORE-1.0.11-20080826.tar.gz MSYS-1.0.11-20090120-dll.tar.gz bison-2.3-MSYS-1.0.11-1.tar.bz2 flex-2.5.33-MSYS-1.0.11-1.tar.bz2 regex-0.12-MSYS-1.0.11-1.tar.bz2 libtool1.5-1.5.25a-1-bin.tar.bz2 libtool1.5-1.5.25a-1-dll.tar.bz2 tar-1.19.90-MSYS-1.0.11-2-bin.tar.gz
安装:将mingw解压到c:/msys目录下(或者:执行c:/mingw/postinstall/pi.bat,按提示操作,不过可能由于msys的原因,似乎容易出问题)即可。
二、编译binutils
mkdir build-32 cd build-32 ../configure --target=mingw32 --prefix=/mingw32 --program-prefix="" --disable-nls --disable-shared make make install
三、编译gmp
mkdir build-32 cd build-32 ABI=32 ../configure --prefix=/mingw --disable-shared make make install
四、编译mpfr
mkdir build-32 cd build-32 ../configure --with-gmp=/mingw --prefix=/mingw --disable-shared make make install
五、编译gcc
mkdir build-32 cd build-32 ../configure --with-gmp=/mingw --with-mpfr=/mingw --with-build-sysroot=/mingw --target=mingw32 --prefix=/mingw32 --program-prefix="" --enable-languages=c,c++ --enable-threads=win32 --disable-nls --disable-shared make all-gcc make install-gcc
六、编译mingw-w64-crt
mkdir build-32 cd build-32 ../configure --target=mingw32 --prefix=/mingw32 --program-prefix="" --enable-lib32 --disable-lib64 make make install
|