gcc-4.8.3安装,gdb-7.6安装
gdb用法:
http://blog.chinaunix.net/uid-26548237-id-3435525.html
gdb-7.6.tar.gz: (官网下载:http://ftp.gnu.org/gnu/gdb/)
gcc-4.8.3.tar.bz2: (官网下载:https://gcc.gnu.org/)
附:gdb之TUI: ncurses (wget http://down1.chinaunix.net/distfiles/ncurses-5.9.tar.gz)
gdb依赖包:termcap-1.3.1.tar.gz
gcc编译会有点繁琐些,下面说一下编译步骤:
如果新安装的CentOS缺少编译环境,必须先安装旧版本的gcc, 然后再进行自举编译,旧版安装方法见在上面介绍过了(用yum),不再细述。
命令:yum install gcc gcc-c++(gcc-c++不可少,不然后面编译报错)
提醒,现在centos7.0已经发布出来了,如果你centos版本是7.0,那么yum安装的gcc/gcc-c++版本本身就已经是4.8.2了。
1),下载并解压缩gcc 4.8.3源码包
tar jxvf gcc-4.8.3.tar.bz2
2), 下载编译所需的依赖包
cd gcc-4.8.3;
./contrib/download_prerequisites
你可以查看README文件,查看编译gcc需要的下载编译依赖,主要是mpfr, gmp等。从网上教程来看,gcc4.8.3版本已经写好了脚本下载这些依赖而无需再手动编译这些依赖项了。执行上面的脚本就可以下载依赖的文件。
3, 创建新目录,并执行configure命令,产生makefile
mkdir ../build-4.8.3
cd ../build-4.8.3
../gcc-4.8.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --prefix= /usr/local/gcc-4.8.3/
说明:本编译参数中使用--prefix指定了gcc的新安装目录。
4), 编译gcc 4.8.3
这个过程需要很久,你可以添加-j参数进行多核心编译,提高编译速度,比如服务器是40核心的可以使用-j40做参数:
make -j40
5), 安装gcc 4.8.3
make install
6), 更新libstdc++.so.6,更新这个库可以让程序快速搜索到这个新版本库,其实你也可以更改环境变量来完成。
cp /<path_to>/build-4.8.3/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.18 /usr/lib64
红字部分在不同平台上有所不同
7), 调整libstdc++.so.6的优先级,
可以使用ln -sf链接,也可以使用alternatives,这里推荐使用alternative
ln方法:
ln -sf /usr/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6
alternatives方法:
alternatives --install 旧库全名 库名 新库全名 优先级
alternatives --install /usr/lib64/libstdc++.so.6.0.13 libstdc++.so.6 /usr/lib64/libstdc++.so.6.0.13 39
alternatives --install /usr/lib64/libstdc++.so.6.0.13 libstdc++.so.6 /usr/lib64/libstdc++.so.6.0.19 40
附:alternatives 常用参数:--install; --remove; --config; --display
检查是否使用新版库:
alternatives --display libstdc++.so.6
libstdc++.so.6 - 状态是自动。
链接目前指向 /usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.13 - 优先度 39
/usr/lib64/libstdc++.so.6.0.19 - 优先度 40
当前“最佳”版本是 /usr/lib64/libstdc++.so.6.0.19
[root@localhost bin]# /usr/bin/gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
Copyright © 2010 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
[root@localhost bin]# /usr/local/gcc-4.8.3/bin/gcc --version
gcc (GCC) 4.8.3
Copyright © 2013 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
[root@localhost bin]# alternatives --display gcc
gcc - 状态是手工。
链接目前指向 /usr/local/gcc-4.8.3/bin/gcc
/usr/local/gcc-4.8.3/bin/gcc - 优先度 40
/usr/bin/gcc - 优先度 39
当前“最佳”版本是 /usr/local/gcc-4.8.3/bin/gcc。
另起窗口,检查版本:
# g++ --version
g++ (GCC) 4.8.3
如果你安装时使用了--prefix指定了自定义目录,这里显示的版本仍然是系统默认的老版本。你需要设置环境变量:PATH,
LD_LIBRARY_PATH,将<--prefix>目录加到系统默认目录前,
#>ldd /opt/ace/ACE_wrappers/lib/libACE.so
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fdd34fd6000)
libm.so.6 => /lib64/libm.so.6 (0x00007fdd34d51000)
libgcc_s.so.1 => /opt/gcc/lib64/libgcc_s.so.1 (0x00007fdd34b3b000)
libc.so.6 => /lib64/libc.so.6 (0x00007fdd347a7000)
#>strings /usr/lib64/libstdc++.so.6.0.13 | grep GLIB
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.2
确实没有看到GLIBCXX_3.4.15
再观察系统lib与lib64下stdc++的文件信息发现,64位目录下的版本libstdc++.so.6.0.13,而32位目录下却是libstdc++.so.6.0.18,
如下图:
lrwxrwxrwx 1 root root 28 7月 8 10:16 /usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.18
-rwxr-xr-x 1 root root 6472115 7月 8 10:16 /usr/lib/libstdc++.so.6.0.18
[root@localhost SignalDistServerMC]# ll /usr/lib64/libstdc++.so.6*
lrwxrwxrwx 1 root root 19 7月 8 12:42 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13
-rwxr-xr-x. 1 root root 989840 11月 22 2013 /usr/lib64/libstdc++.so.6.0.13
解决方案:
从上面的情况分析看,是因为ACE在寻找依赖库的时候找到了/usr/lib64/libstdc++.so.6,但这个版本比较低为libstdc++.so.6.0.13版本,找不到接口所以报错。
可以更改库的软链接,使其指向高版本库:ln -sf /usr/lib64/libstdc++.so.6 /usr/lib/libstdc++.so.6.0.18
gcc-4.8.3安装,gdb-7.6安装的更多相关文章
- 使用yum安装 gdb/g++等软件包
报错: Cannot find a valid baseurl for repo: base/7/x86_6 解决方法: 方法一. 1.打开 vi /etc/sysconfig/network-scr ...
- 安装GDB和GDBSERVER
安装GDB和GDBSERVER 转自http://www.360doc.com/content/10/0407/17/155970_21971613.shtml 把GDBSERVER装入文件系统 转自 ...
- Linux下离线安装gdb及常用命令汇总
以redhat6.5虚拟机作为例子,由于工作性质,大部分情况linux的软件安装,是采用离线方式的. 1.离线安装gdb 像gcc.g++或者gdb这种常用的工具软件,一般虚拟机都会安装的,如未安装, ...
- Cygwin的安装,卸载,以及安装gdb
转载来源 http://10000001.blog.51cto.com/4600383/1341484 1.安装 其实Cygwin的安装时很简单的,需要的安装相应的就可以了,要详细的去网上找,很多 ...
- 如何在mac os中安装gdb及为gdb进行代码签名
1. 安装gdb GDB作为一个强大的c/c++调试工具,一直是程序猿们的良好伴侣,但转到Mac os才发现竟然没有默认安装,所幸还有强大的homebrew工具: brew install homeb ...
- MacOS下安装gdb、mgo
安装gdb:http://blog.panks.me/posts/2013/11/install-gdb-on-os-x-mavericks-from-source/ 注意最后两步: killall ...
- MacOS 安装 gdb 踩过的坑
今天在 OS X EI Capitan 10.11.6 中安装 gdb 的时候,出了一堆状况,写下此文以便以后能够时刻提醒自己. 解决方案 1.安装 gdb $ brew install gdb $ ...
- mac安装gdb调试(转载)
转载自:http://blog.plotcup.com/a/129 最近一直用go写一个项目,本想在mac上用gdb调试一下,但xcode4.6带的gdb版 本还是太低了,不支持go,只好自己安装一个 ...
- 安装 RPM 包或者安装源码包
安装 RPM 包或者安装源码包 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松了,因为我们不是在图形界面下. ...
- VMWare12安装CentOS7以及redis安装和常用命令
一.vmware安装centos7后没有网卡 VMWare 12版本不提供32位安装程序,只有64位安装程序,如果在安装CentOS时,选择的是CentOS而不是CentOS 64位,则会出现Cent ...
随机推荐
- Android核心分析之二十三Andoird GDI之基本原理及其总体框架
Android GDI基本框架 在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了.但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理. GDI主 ...
- Markdown语法和MWeb使用说明
Markdown 语法和 MWeb 写作使用说明 开始写博客,首先熟悉一下Markdown,以前过看GitHub里的README.MD,感受到了这种文字排版的简洁美观. 写博客是一种有效的学习总结和分 ...
- Java科普之基础知识回顾
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Java语言由C衍生,丢弃C中的指针,使用"发出指令-接收返回值-验证-发出指令-接收返回 ...
- RichLabel基于Cocos2dx+Lua v3.x
RichLabel 简介 RichLabel基于Cocos2dx+Lua v3.x解析字符串方面使用了labelparser,它可以将一定格式的字符串,转换为lua中的表结构扩展标签极其简单,只需添加 ...
- zf2 安装
下载实例程序 ZendSkeletonApplication 解压至D:\xampp\htdocs并重命名为ZendSkeletonApplication 下载Zend Framework 2.0最新 ...
- javascript 原生方法监听DOM结构改变事件
js原生方法监听DOM结构改变事件 document.addEventListener('DOMNodeInserted',function(){alert(1)},false);document.a ...
- MYSQL数据库错误代码提示汇总
Mysql出错代码表 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1 ...
- C语言ASM汇编内嵌语法【转】
转自:http://www.cnblogs.com/latifrons/archive/2009/09/17/1568198.html GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作G ...
- linux RTC 驱动模型分析【转】
转自:http://blog.csdn.net/yaozhenguo2006/article/details/6824970 RTC(real time clock)实时时钟,主要作用是给Linux系 ...
- Jalopy 之 HelloWorld —— Jalopy 在 MyEclipse 下的安装与使用
如果你要问我Jalopy是什么.我只能告诉你“它是一个格式化代码的工具”.因为我也是一个初学者. 如果你也是初次接触,那一起来学习下吧! ·安装 1.首先,下载资源 下载地址:http://sourc ...