关于QT5安装&GCC升级的问题

来源:互联网 发布:网络嗅探攻击 编辑:程序博客网 时间:2024/06/05 18:40

 

好吧,折腾了这么多天,终于完美的把QT5装上,同时将GCC升级到了4.8.1了,linux下的文件依赖问题实在太严重了,对于我一个刚入门的linux小白来说的确有挺大的困难,不过通过这几天的不断折腾,对linux系统的各个方面都熟悉了不少,这也算因祸得福吧!

起因:在安装QT5的过程中,由于安装好后无法启动,便到bin目录下执行./Qtcreater命令,错误提示为无法找到GLIBCXX_3.15,通过网友的博文,了解到这是由于GCC版本过低的缘故,因此,便开始了GCC升级的工作!

用源码升级GCC4.8.1的过程:

=====================================================================================

以下大部分参考于:http://www.oschina.net/question/12_49423

=====================================================================================

第一步:从GNU网站下载gcc-4.8.1的源码包以及其关联库mpc、mpfr、gmp

http://www.multiprecision.org/index.php?prog=mpc&page=downloadv  //mpc下载地址

http://www.mpfr.org/mpfr-current/                                                //mpfr的下载地址

http://gmplib.org/                                                                      //gmp下载地址

第二步:解压安装包

1、在/opt下新建文件夹gcc_pack,并将需要的安装包下载到gcc_pack中

#mkdir gcc_pack  && cd gcc_pack

#wget  http://www.multiprecision.org/index.php?prog=mpc&page=downloadv

#wget http://www.mpfr.org/mpfr-current/  

#wget http://gmplib.org/      

#wget http://gcc.gnu.org/mirrors.html         //各位可以从这里下载自己需要的版本

2、解压gcc-4.8.1.tar.gz.,然后将mpc、mpfr、gmp解压到gcc-4.8.1的源代码所在目录

        #tar zvxf  gcc-4.8.1.tar.gz

        #tar jxvf mpfr-3.1.2.tar.bz2

        #tar zxvf  mpc-0.8.tar.gz

        #tar  jxvf gmp-4.3.2.tar.bz2

        mv mpc-0.8  gcc-4.8.1/mpc

        mv  mpfr- 3.1.2 gcc-4.8.1/mpfr

        mv  gmp-4.3.2  gcc-4.8.1/gmp

第三步:分别进入相应的依赖包中,编译、安装依赖包(注:必许按gmp、mpfr、mpc的顺序编译,因为它们是层层依赖关系!)

1、编译&安装gmp库:

#cd   gcc-4.8.1/gmp

#mkdir build && cd build

#../configure --prefix=/usr/gcc-4.8.1 --build=i686-linux-gnu

#make

#make install

==================================================================================

||几个命令:

--prefix=  :指定安装目录

--build=   :谁在这里编译? 意思说你目前的编译动作在哪里跑的。

--host= 目前编译出来的程序在哪里跑 ? 所以工具链好了之后,给目标系统编译程序全部是设置host为arm的。
       --target=为谁编译程序,这在交叉编译的时候跟host一个意思,一般是guess的,而且configure 脚本会说是 =—host.

这几点可以参考博友的文章:http://blog.chinaunix.net/uid-20634420-id-3027812.html

==================================================================================

2、编译、安装mpfr

#cd ..

#cd ..

#cd mpfr*

#mkdir build && cd build

#../configure --build=i686-linux-gnu --prefix=/usr/gcc-4.8.1 --with-gmp=/usr/gcc-4.8.1

#make

#make install

(--with指定依赖的库文件)

3、编译安装mpc

#cd ..

#cd ..

#cd mpc*

#mkdir build && cd build

#../configure --build=i686-linux-gnu --prefix=/usr/gcc-4.8.1 --with-gmp=/usr/gcc-4.8.1 --with-mpfr=/usr/gcc-4.8.1

#make

#make install

================================================================================

这里在make时出现以下错误:

../../src/acos.c: In function ‘mpc_acos’:

../../src/acos.c:192: error: ‘GMP_RNDA’ undeclared (first use in this

function)

../../src/acos.c:192: error: (Each undeclared identifier is reported only

once

../../src/acos.c:192: error: for each function it appears in.)

make[2]: *** [acos.lo] Error 1

通过网友了解到,这是由于mpc版本较低造成,故而重新下了个mpc0.9的,解决了以上问题!

=====================================================================================

完成以上工作,便可以编译安装gcc-4.8.1了!

第四步:编译&安装gcc-4.8.1

#cd ..

#cd ..

#mkdir build && cd build

#export LIBRARY_PATH=/usr/lib/i686-linux-gnu/

#export C_INCLUDE_PATH=/usr/include/i686-linux-gnu

#export CPLUS_INCLUDE_PATH=/usr/include/i686-linux-gnu

#../gcc-4.8.1/configure --build=i686-linux-gnu --prefix=/usr/gcc-4.8.1 --with-gmp=/usr/gcc-4.8.1 --with-mpfr=/usr/gcc-4.8.1 --with-mpc=/usr/gcc-4.8.1 --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --program-suffix=-4.8.1

#make

# ln -s /usr/lib/i686-linux-gnu /usr/lib32

#make install

===============================================================================

在make时,出现C++ compile not found 的错误:

wps1A68.tmp

那是因为我在安装前并没有安装相应的软件包,所以在这儿我需要安装gcc库

如果yum功能配置好了且网络正常的话,可以直接yum –y install gcc-c++(关于yum的配置这儿就先不讨论了)

如果没有,可以用系统盘里面的rpm包来安装。

首先需要保证虚拟机上挂了镜像文件,如下图

image

mount /dev/cdrom1 /mnt              

cd /mnt/Packages

rpm –ivh libstdc++-devel-4.4.6-3.el6.i686.rpm

rpm –ivh gcc-c++4.4.6-3.el6.i686.rpm    //注意:由于这两个包存在依赖关系,故需要按顺序安装,如果不知

              //道自己系统盘里面gcc-c++的版本,可以使用find命令:find /mnt/Packages –name libstdc++*

             //如果出现文件不可安装的话,可以将其拷贝到其他文件下再安装

make install

第五步:配置gcc

这里有两种方法:

方法一:直接建立链接

mv /usr/bin/gcc /usr/bin/bakgcc                    //备份原来的文件

mv /usr/bin/g++ /usr/bin/bakg++

mv /usr/lib/libstdc++.so.6   /usr/lib/bak_libstdc++.so.6

ln -s /usr/gcc-4.8.1/lib/libstdc++.so.6.0.18 /usr/lib/libstdc++.so.6

ln -s /usr/gcc-4.8.1/bin/gcc  /usr/bin/gcc

这样,如果需要用以前版本的gcc,就用cc,如果需要用现在版本的gcc,就用gcc

你可以用命令cc –v 和gcc –v 来查看以前和现在的版本。

方法二:

下面命令可将 gcc 4.7 添加到系统路径中,或者直接编辑 .bashrc 文件并在最后添加下面一行:

#gedit /root/.bashrc

export PATH=/usr/gcc4.8.1/bin:$PATH

然后重新启动系统就可以了!

================================================================================

OK!以上便是GCC升级的全过程,接下来就可以顺利运行QT5.3了!

0 0
原创粉丝点击