1,系统里默认的gcc是4.4.7的,首先需要安装gcc3.4.5。
1)下载源代码:从https://gcc.gnu.org/mirrors.html (推荐地址:http://mirrors-usa.go-parts.com/gcc/releases/gcc-3.4.5/gcc-3.4.5.tar.bz2)下载
2)安装glibc-32:yum-y install glibc-devel.i686
3)编译安装:
假设目标安装目录为:/opt/compiler/gcc-3.4.5
依次执行以下命令:
./configure --prefix=/opt/compiler/gcc-3.4.5 --mandir=/opt/compiler/gcc-3.4.5/man
--infodir=/opt/compiler/gcc-3.4.5/info
--enable-shared --enable-threads=posix
--disable-checking --with-system-zlib
--enable-__cxa_atexit --disable-libunwind-exceptions
--enable-languages=c,c++ --disable-libgcj --host=x86_64-redhat-linux
make -j
make install
至此,gcc安装完毕,gcc bin文件位于/opt/compiler/gcc-3.4.5/bin/gcc
./configure CFLAGS=-O2 --with-sysroot --with-system-libunwind --enable-languages=c,c++ --enable-c99 --enable-threads=posix --enable-__cxa_atexit --enable-libstdcxx-allocator --enable-libstdcxx-threads --enable-libstdcxx-time --enable-libstdcxx-visibility --disable-multilib --disable-bootstrap
--prefix=/opt/compiler/gcc-4.8.2/ --with-local-prefix=/ --with-native-system-header-dir=/top/include --with-build-sysroot=/top
./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib --prefix=/opt/compiler/gcc-4.8.2/ --enable-c99 --enable-threads=posix --enable-__cxa_atexit
2,boost库用yum安装是1.4.48版本,需要回退到1.32.0。
1)下载源码:从官网里找即可。
2)编译过程:boost用的bjam进行编译。到tools/build/jam_src里执行build.sh生成bjam;拷贝bjam到boost源码的根目录,执行./bjam toolset=gcc --layout=tagged --build-type=complete stage完成编译;需要把stage中生成的所有lib拷贝到/usr/lib64中,同时把根目录下的boost文件夹拷贝到/usr/include中,不能打软连接,Make的时候会找不到目录。
3,编译项目的时候需要注意:Makefile有可能指定了CC和CXX的路径,这个时候虽然新装了gcc3.4.5可能仍然不生效,需要改一下路径。