截至目前,Qt的最新版本为5.2.1,CentOS的版本为6.5,GCC的版本为4.8.2,经过一番尝试,终于将Qt开发环境安装到了CentOS(64 bit)中,整个过程中有几个需要注意的地方,在这里整理一下,供大家参考。

1、升级GCC
CentOS6.5内置的GCC版本为4.4,而Qt5.2.1则需要4.8.2的支持(支持C++ 11特性),因此,必须先升级GCC。
GCC的源码包下载地址:http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2(82M)
下载完成后,解压:
# tar -zxvf gcc-4.8.2.tar.bz2
# cd gcc-4.8.2

GCC有三个依赖包(/contrib/download_prerequisites文件中可以看到):
MPFR=mpfr-2.4.2
GMP=gmp-4.3.2
MPC=mpc-0.8.1

如果你是断网环境下安装的话,请严格按照版本号下载并按顺序编译这三个依赖包,否则可能会导致GCC make失败。如果是联网的环境,则可以直接在GCC目录下执行:./contrib/download_prerequisites,脚本会自动wget到这几个依赖包并编译。
当依赖包编译安装后,就可以开始编译GCC了,在configure前,有几个编译参数需要理解一下:
gcc 编译参数说明:
--prefix //默认 gcc 的安装目录,CentOS-6.5 下面最好安装到 /usr 下,不然可能会有问题
--enable-languages //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java
--disable-multilib //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。

理解了上面的参数意义,就能明白下边编译命令的含义了:
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4 //这个过程需要30-120分钟的时间,依据电脑配置而定。j4,是四个作业一块运行,从而提升编译效率。
make install
经过漫长的等待后,GCC4.8.2应该就可以安装到你的CentOS下了,检验一下:
gcc --version
可以看到系统返回了gcc的版本和版权信息:
gcc (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

这中间有几点需要注意:

  • GCC的编译需要依赖GCC,听着挺矛盾,意思就是,系统中必须有一个GCC版本,才能编译新版本的GCC。就好像安装一个打包在RAR压缩包里的RAR安装文件~
  • 当gmp、mpfr、mpc编译的时候是自定义指定的安装路径,在编译GCC时需要加上下面的选项:
    --with-mpc=MPC的安装目录
    --with-mpfr=MPFR的安装目录
    --with-gmp=GMP的安装目录
  • 截至目前,只是把GCC 4.8.2编译安装了,还没有替换系统的链接库:/usr/lib64/libstdc++.so.6,继续看下边…

2、安装Qt
Qt for Linux 64-bit可以从官网下载,下载后,直接在终端下执行安装文件即可进入图形化界面按向导进行安装,这个过程极其简单,无需赘述。关键在于,安装好之后,Qt一定是启动失败的!终端中提示如下:
Failed to load core: /opt/Qt5.2.1/Tools/QtCreator/lib/qtcreator/plugins/QtProject/libCore.so: Cannot load library /opt/Qt5.2.1/Tools/QtCreator/lib/qtcreator/plugins/QtProject/libCore.so: (/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /opt/Qt5.2.1/Tools/QtCreator/lib/qtcreator/plugins/QtProject/../.././libQt5CLucene.so.5))
可以看出,CentOS默认的GCC的链接库还没有替换,因此,会报链接库的版本错误。建议按照下面的步骤来完成替换:

  • updatedb,先建立文件索引,这样可以快速地搜索到CentOS中的所有文件。
  • locate libstdc++.so.6,检索CentOS中libstdc++.so.6文件,可以看到终端列出了很多同名或类似的文件目录,这样就清楚文件目录了。
  • mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak,先备份原有的链接库。
  • mv /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6,替换即可。

文件替换后,再启动Qt:
cd /opt/Qt5.2.1/Tools/QtCreator/bin/
./qtcreator.sh

http://www.pfeng.org/archives/733

CentOS 6.5(64bit)安装GCC4.8.2+Qt5.2.1(替换GCC的链接库)的更多相关文章

  1. 【CentOS 6.5】安装gcc-4.8.2和Qt5.2

    因为CentOS6.5中gcc版本比较低.安装Qt5.2前先升级gcc. 首先下载gcc,附上百度盘地址:http://pan.baidu.com/s/1jGibvqY 解压安装包,并进入到解压文件夹 ...

  2. CentOS 6.5 yum安装配置lnmp服务器(Nginx+PHP+MySQL)

    以下全部转载于  http://blog.csdn.net/lane_l/article/details/20235909 本人于今晚按照该文章使用centos 6.7 64bit安装成功,做个备份, ...

  3. Debian7安装GCC4.8

    参考一  参考二   参考三   参考四 Ubuntu13.04下编译GCC-4.8.2源码并安装成功 CentOS 6编译安装GCC4.8      CentOS 6.4系统编译安装gcc-4.8. ...

  4. CentOS6.5升级手动安装GCC4.8.2 与 CentOS 6.4 编译安装 gcc 4.8.1

    http://blog.163.com/zhu329599788@126/blog/static/6669335020161179259975 http://www.cnblogs.com/codem ...

  5. mysql安装(CentOS 7.1 (64-bit system) MySQL 5.6.24)

    环境:CentOS 7.1 (64-bit system) MySQL 5.6.24yum install libaio //安装依赖的包wget http://dev.mysql.com/get/m ...

  6. 【推荐】CentOS安装gcc-4.9.4+更新环境+更新动态库

    注:以下所有操作均在CentOS 6.8 x86_64位系统下完成. CentOS上yum安装的gcc版本过低(4.4.7),在安装某些软件的时候不支持,所以这里需要对其进行升级. #gcc的安装# ...

  7. CentOS下编译安装Gcc-4.9

    给公司测试服务器搭环境,手工安装gcc-4.9.0颇费功夫,记录如下. 1.安装gcc.g++,系统源默认安装版本为4.4.7: 2.安装依赖包GMP.MPFR.MPC,注意安装顺序: 3.修改动态库 ...

  8. linux(Centos)下编译安装gcc4.8.2

    欢迎转载.转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46811159 近期要用到c++ 11,所以没办法仅仅得把那台ce ...

  9. centos 6.4下安装postgresql 9.2

    我的linux版本是centos 6.4 ,准备安装postgresql 9.2 根据官方说明: http://www.postgresql.org/download/linux/redhat/ 缺省 ...

随机推荐

  1. ExpandableListView(三)只展开一个group,没有child不展开group

    本文是自己在实践中,发现的问题. 有时候想让界面更加的人性化,就要实现很多的效果,比如只展开一个group,在点击下个group的同时,关闭之前的group 在一个ExpandableListView ...

  2. ZOJ 2562 More Divisors(高合成数)

    ZOJ 2562 More Divisors(高合成数) ACM 题目地址:ZOJ 2562 More Divisors 题意:  求小于n的最大的高合成数,高合成数指一类整数,不论什么比它小的自然数 ...

  3. android UI进阶之用ViewPager实现欢迎引导页面[转]

    ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包.大家搜下即可. ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示. ...

  4. IEEE 754标准

    IEEE 754-1985 was an industry standard for representing floating-point numbers in computers, officia ...

  5. Laravel5 学习与使用(一)

    2015-07-04 (1)  安装Laravel框架 ① 安装前的准备工作 使用Apache24 + PHP 5.6 + MySQL 开发环境完成PHP网站开发,所以Laravel的安装是建立在以上 ...

  6. BZOJ 2440 完全平方数(莫比乌斯反演+二分查找)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23362 题意:定义含有平方数因子的数为完全平方数(平方数因子不包含 ...

  7. BZOJ 1034: [ZJOI2008]泡泡堂BNB( 贪心 )

    贪心...用最弱的赢最弱的,用最强的赢最强的,否则用最弱的和最强的比... (贴个官方题解:将双方的选手均按从强到弱排序,然后第一次扫描尽可能用当前剩下的选手中能赢对手当前最强选手中最弱的一个去赢得胜 ...

  8. BZOJ 3931: [CQOI2015]网络吞吐量( 最短路 + 最大流 )

    最短路 + 最大流 , 没什么好说的... 因为long long WA 了两次.... ------------------------------------------------------- ...

  9. Linux 网络编程: echo Service

    前言 大病初愈,感谢某人的陪伴,感谢王乐庆同学和赵攀同学的细心照顾.原以为过了第八周就不忙了,却没想到还有明天的党章考试.还是写代码比背党章有意思~趁着服务器还没过期,赶紧把 echo 完成了.关于错 ...

  10. codeforces 609E. Minimum spanning tree for each edge 树链剖分

    题目链接 给一个n个节点m条边的树, 每条边有权值, 输出m个数, 每个数代表包含这条边的最小生成树的值. 先将最小生成树求出来, 把树边都标记. 然后对标记的边的两个端点, 我们add(u, v), ...