您的位置:首页 > 其它

gdb和gcc升级:解决编译和调试时出现gdb no symbol in current context

2015-06-24 22:37 417 查看

1 gcc 4.8安装

步骤1:从gnu网站下载代码(gcc-4.8.0.tar.gz)。
步骤2:解压代码
$> tar -xzvf gcc-4.8.0.tar
$> cd gcc-4.8.0
步骤3:编译代码
$> ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --build=x86_64-redhat-linux
$> make
步骤4:安装
linux下安装软件需要以root权限。
$# make install
步骤5:检查
$> gcc -v
入命令输出结果含义“gcc version 4.8.0 (GCC)”,则表示gcc新版本安装成功。

重要:
升级后需要拷贝两个重要的文件到对应目录
1 libstdc++.so,用新编译的替代旧有系统里面的
2 libgcc_s.so,使用/usr/local/lib64下的文件,替换掉/usr/local/lib/下的老文件。(对ns3编译,elf-cache的拷贝这是必须要的)

2 gdb 7.6安装

安装完gcc后,些一个简单的用例。再用gdb进行调试时,发现出错。错误信息如,“Missing separate debuginfos use:debuginfo-install...”

版本不匹配还可能出现gdb no symbol in current context。

出现错误的原因是,gdb版本和gcc版本不匹配。

步骤1:从gnu网站下载代码(gdb-7.6.tar.gz)。

步骤2:解压代码
$> tar -xzvf gdb-7.6.tar.gz
$> cd gdb-7.6

步骤3:编译代码

              $> ./configure

              $> make

              编译过程中,有库依赖的问题。本人编译过程中,缺少库ncurses。安装库 ncurses-5.9.tar.gz,安装过程不详细描述,过程和其他软件包类似。

步骤4:安装
linux下安装软件需要以root权限。
$# make install

步骤5:检查
$> gdb -v
入命令输出结果含义“GNU gdb (GDB) 7.6”,则表示gdb新版本安装成功。


安装成功后,就可以编译和调试用C++ 0x11标准写的代码了。

编译代码时,需要带参数std=c++11:

如:g++ test.cc std=c++11。

参考
http://blog.csdn.net/kedacom_com/article/details/8917800
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: