安装gcc4.8.5
安装gcc4.8.5
1. g++ --version, 4.4.7不支持c++11
2. 升级gcc-c++, 下载gcc
https://gcc.gnu.org/ 官网,镜像下载地址https://gcc.gnu.org/mirrors.html,随便找个镜像下载就行了
http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.bz2
3. 解压,配置configure --prefix=yourprefix --enable-languages=c,c++
报错:
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations. Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
http://gcc.gnu.org/install/prerequisites.html for additional info. If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files. They may be located in separate packages.
去ftp://gcc.gnu.org/pub/gcc/infrastructure/下载所需的gmp-4.3.2.tar.bz2,mpc-0.8.1.tar.gz,mpfr-2.4.2.tar.bz2
分别解压安装
4. 重新配置,configure --prefix=yourprefix --enable-languages=c,c++ --with-gmp=gmp_path --with-mpc=mpc_path --with-mpfr=mpfr_path
再报错:
checking for suffix of object files... configure: error: in `xxx/gcc-4.8.5/x86_64-unknown-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory `xxx/gcc-4.8.5'
不要打开xxx/gcc-4.8.5/config.log, 错误信息xxx/gcc-4.8.5/x86_64-unknown-linux-gnu/libgcc/config.log
共有3类错误信息:
1. xgcc: error: unrecognized command line option '-V', fatal error: no input files
2. xgcc: error: unrecognized command line option '-qversion', fatal error: no input files
3. xxx/gcc-4.8.5/x86_64-unknown-linux-gnu/gcc/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
Google了半天,结果是1/2类错误可以忽略不计,3类错误我们上面明明已经安装了mpc,也指定了路径,结果还是找不到。。。
需要设置LD_LIBRARY_PATH,export LD_LIBRARY_PATH=mpc_path/lib
参考:http://blog.csdn.net/gaara_fan/article/details/7436940
5. 编译,make -j8
报错: Error “gnu/stubs-32.h: No such file or directory”
原因是缺少32位libc开发包(http://stackoverflow.com/questions/7412548/error-gnu-stubs-32-h-no-such-file-or-directory-while-compiling-nachos-source)
yum install glibc-devel.i686
6. 再编译,make -j8
等待…………………………………………………………………………
7. make install
8. 编写helloworld.cpp,编译: g++ helloworld.cpp
报错: cc1plus: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
add LD_LIBRARY_PATH=mpc_path/lib
9. 运行,./a.out, OK
10. debug,gdb a.out
加断点,run,Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6_2.9.x86_64 libgcc-4.4.6-3.el6.x86_64 libstdc++-4.4.6-3.el6.x86_64
参考:http://stackoverflow.com/questions/10389988/missing-separate-debuginfos-use-debuginfo-install-glibc-2-12-1-47-el6-2-9-i686
#debuginfo-install glibc-2.12-1.47.el6_2.9.x86_64 libgcc-4.4.6-3.el6.x86_64 libstdc++-4.4.6-3.el6.x86_64
n运行下一条,Single stepping until exit from function main, which has no line number info
参考:http://stackoverflow.com/questions/20474668/gdb-compile-with-g-option-but-single-stepping-until-exit-from-function-main
gdb版本太低……7.2-90.e16
http://ftp.gnu.org/gnu/gdb/下载新版本:gdb-7.6.tar.bz2
解压安装
再次调试,OK……