zoukankan      html  css  js  c++  java
  • CentOS 6.5(64bit)安装GCC4.8.2+Qt5.2.1(替换GCC的链接库)

    截至目前,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

  • 相关阅读:
    Java 判断回文字符串有多少和其中的最大字符串
    多线程下并发数据结构
    HashMap底层及使用个人理解
    简单预览课本后的疑问
    自我介绍
    HTML中行内元素与块级元素的区别:
    html基本选择符的使用
    Html简单介绍
    Sublime Text 3 快捷键精华版
    html文本的基本设置
  • 原文地址:https://www.cnblogs.com/findumars/p/5111800.html
Copyright © 2011-2022 走看看