CentOS 6.x安装多GCC版本号,cmake的安装与使用

操作系统:CentOS release 6.5 (Final)

当前gcc版本号:build=x86_64-redhat-linux
? ? ? ? ? ? ? ? ? ? ? ? ? Thread model: posix
? ? ? ? ? ? ? ? ? ? ? ? ? gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)

待安装gcc版本号:gcc-4.8.5.tar.gz

编译新版本号的gcc之前,必须确保系统中已经安装了低版本号的gcc编译器。

【注】:编译gcc前。可能须要安装的lib文件libstdc++-devel.i686 / libstdc++-devel.x86_64。

? ? ? ? ? ? ? ? 在gcc编译阶段。可能的配置參数../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++--disable-multilib

? ? ? ? ? ? ? ? 假设不带--disable-multilib选项,则编译就会生成32bit和64bit的版本号。即多平台交叉编译,这里就须要对应的libstdc++-devel.i686 / libstdc++-devel.x86_64。

1> 获取gcc-4.8.5安装包,并解压:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

2> 编译前,自己主动下载所需的依赖库。

【注】:查看该文件可知,主要是下载gmp-4.3.2、mpc-0.8.1、mpfr-2.4.2三个包。并解压。建立软件连接。

? ? ? ? ? ? ? ? 假设用户不能正常使用wget?ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2来获取包:

? ? ? ? ? ? ? ? 1)考虑 使用curl命令curl -O?ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2?

? ? ? ? ? ? ? ? 2)查找国内镜像源,ftp地址更改之

3>不须要手动去编译2>中下载安装的三个包

參考之前达人安装编译过程,多会有提到,在正式编译gcc-4.8.x之前,须要手动去编译以上的三个依赖。

但实測,在新版本号的gcc中。不须要我们去手动编译这些东西,仅仅须要保证三个文件夹的软链存在即可。

设置软链。就不用去指定--with-mpc、--with-mpfr、--with-gmp三个路径。

4> 生成编译时的配置文件

【注】:gcc-build-4.8.5是我新建立的,用来编译gcc的文件夹,编译gcc是不能在gcc-4.8.5的根文件夹下进行的。必须要新建一个文件夹来。

5>使用make工具编译

【注】:make -j 4声明要採用多核来生成make文档,加快编译速度。假设是单核用户,那还是算了,老实。make吧。

6> 更新系统默认的gcc版本号

说明(从最后一个參数说起):

101:版本号优先级,值越大,就越先启用

/usr/local/bin/gcc:新的gcc文件文件夹,以上的编译操作默认,会在路径/usr/local下生成对应的库文件和运行文件等。

gcc:系统调用时,在命令行中的名字,也就是路径的一个别名吧。

/usr/bin/gcc:之前版本号gcc调用时的路径。

完毕配置以后。能够看到以下的相似结果:

假设想要,切换回旧版本号。请參考update-alternatives --config命令。

然后。运行updatedb。更新系统文件信息,并退出当前session。又一次连接session:

啊,最终编译好了,好紧张的说!

!!!

7> 更新gcc-4.8.5的库文件

提示更新*.so依赖文件之前,编译cmake时,遇到的错误例如以下:

提示我们,尽管gcc是新版本号的。可是检測到对应的依赖库还是旧本版的,路径/usr/lib64/libstdc++.so.6。以下定位问题。

上面有两个路径存在libstdc++.so.6,意识到应该是系统如今默认作用的库还是之前旧版本号的,安全起见,这里我为旧版本号的so文件做了备份。

有两种方法处理这个问题:

1) 建立软链接(推荐):

ln -sb /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6

最终结果:

2) 备份/usr/lib64/下的libstdc++.so.6和libstdc++.so.6.0.13,拷贝/usr/local/lib64/libstdc++.so.6、libstdc++.so.6.0.19到/usr/lib64文件夹下

编译cmake-3.5

1>自己主动配置编译文档

2>编译

3>查看信息

4>编译实例projectApache Arrow

cmakeproject时,指定特定的gcc、g++版本号!!

。!

!!!

WTF?

为什么cmake一个project默认调用的编译器还是旧版本号的。而不是新安装的gcc-4.8.5。

尽管纠结了半天,怀疑是不是之前的gcc编译过程有问题。可是细致确认后,肯定了是cmake本身的问题。

故參考https://cmake.org/Wiki/CMake_FAQ#Method_3_.28avoid.29:_use_set.28.29,设置对应的cmake编译选项。

cmake -D CMAKE_C_COMPILER=/usr/local/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/bin/g++

指定新版本号GCC的路径。编译成功。

总结:

至此,本人所需的一切工作环境均已经搭建完毕,希望本人的一些痛苦经历不要再重现,毕竟,工作时间是宝贵的。

:)

原文地址:https://www.cnblogs.com/zhchoutai/p/8608601.html

时间: 2024-10-11 10:49:55

CentOS 6.x安装多GCC版本号,cmake的安装与使用的相关文章

[CentOS]怎样解决gcc版本号冲突?

今天碰到一个比較坑爹的问题.在centos上用yum安装编译环境,执行: yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 结果导致编译cocos2d-x出现错误: cc1plus: error: unrecognized command line option "-std=c++11" 我google了一番,确定这个错误是因为gcc的版本号过低造成的 查看gcc版本号: gcc --

CentOS操作系统基于Cmake编译安装MySQL

1.1 实验环境 操作系统:CentOS6.7 虚拟机:VMware Workstation 数据库系统:mysql-5.6.15.tar.gz 1.2      实验背景 从MySQL5.5版本开始,MySQL源码安装的编译工具由configure开始向cmake过渡,安装方式和MySQL5.5之前的版本略有不同.在这里简单小结下. 源码编译安装最容易出错,也是最耗时间.sky建议初学者学会一种方式之后,尝试应用多种方式安装. 安装之前,最好检查一些基础软件,例如 make, GCC, Per

CentOS下使用cmake编译安装mysql

一.下载安装所必需的依赖包 1.因为高版本mysql都用cmake安装,所以下载cmake wget http://www.cmake.org/files/v3.0/cmake-3.0.1.tar.gz tar zxvf cmake-3.0.1.tar.gz cd cmake-3.0.1 ./configure make && make install 2.下载其它包 wget http://ftp.gnu.org/gnu/bison/bison-3.0.2.tar.gz 安装同上 wge

CentOs之yum详解及程序的编译安装

CentOs之yum详解 yum的地位:yum是rpm的前端管理工具,而且依赖于rpm.  yum仓库:yum repository,仓库里存储了众多rpm包,以及包的相关的元数据文件.yum仓库里会有个repodata目录存在. yum支持的文件服务器类型: ftp://  http:// file:///(本地服务器,例光盘)   /nfs:// 查看yum的信息: [[email protected]]# rpm -q yum ------查看yum命令的安装包是哪个 yum-3.4.3-

vsftpd 编译安装 及 隐藏版本号

环境:Redhat Enterprise Linux AS 4.0 update2(i386) 不提示,均表示以root权限执行. [注:]//为注释符,如"// 建立MySQL组",即为一句注释. 我有一块硬盘160 G ,内存1G ,分区如下: /                   文件格式:Ext3           容量大小:8G (交换分区,无)      文件格式:Swap           容量大小:2 G (2G=2048M,约为内存值的2倍) /home1   

CentOS 6、7下IPSEC/L2TP VPN一键安装脚本(openswan+xl2tpd)

CentOS 6.7下IPSEC/L2TP VPN一键安装脚本(openswan+xl2tpd) 概念性的东西这里不再赘述,网上有太多,一键安装脚本也有很多,但是很多不能用,能用的也仅仅只是在CentOS6下使用,CentOS7基本没看到这些安装脚本.于是花了一些时间来折腾测试,写这个脚本方便以后VPN的一键安装搭建.其中用的开源软件包是openswan和xl2tpd,,中间碰到过很多很多问题,如openswan和xl2tpd之间的兼容性问题. 请容许我这样做,脚本依赖<OneinStack>

Linux下查看Nginx安装目录、版本号信息?

Linux环境下,怎么确定Nginx是以那个config文件启动的? 输入命令行: ps  -ef | grep nginx 摁回车,将出现如下图片: master process 后面的就是 nginx的目录. 怎么查看服务器上安装的nginx版本号,主要是通过ngix的-v或-V选项,查看方法如下图所示: -v 显示 nginx 的版本. -V 显示 nginx 的版本,编译器版本和配置参数. 查看服务器上安装的Nginx版本号 http://www.linuxidc.com/Linux/2

Fuel 5.1安装openstack I版本号环境

声明:本博客欢迎转载,但请保留原作者信息! 作者:傅斌杰 团队:华为杭州OpenStack团队 Fuel 简单介绍 Fuel是Mirantis公司开发的部署openstack集群工具,主要功能为裸机PXE安装操作系统,master节点提供DHCP.TFTP服务,可以实现openstack服务编排,通过puppet进行配置服务管理,此外还提供了openstack关键服务的健康检查和log实时查看等基础运维服务.支持openstack服务HA部署.有比較友好的交互式的web界面. 使用Fuel 5.

【ruby】【linux】【irb】CentOS上安装配置ruby开发环境,安装 irb

在读<理解Unix进程>这本书,书中代码是用Ruby写的,就自己想实践一下,搜来搜去要安装配置Ruby,我是centOS6.5的系统.下面这篇不错,我又加入了一点自己的理解和试验. 1 方法一:下载ruby的安装包来进行安装 1.安装编译环境gcc 使用yum install gcc在线安装 2.安装ruby开发环境 PS:经常在搜帖子的时候,大神的文章中都是随随便便下载个什么啊,又没告诉我这样的菜鸟到哪里下,让人几番周折,这里 下载 Ruby - Ruby 官方网站:https://www.