CentOS 5.5 手工安装最新 GCC

news/2024/6/29 12:01:35 标签: gcc, centos, library, path, makefile, 编译器

gcc编译目前的最新版本是4.5.0。本人在CentOS(版本是5.5)进行了手动安装,在安装的过程中遇到不少问题,下面具体说一下我的安装过程。

 

首先在配置gcc的过程中会出现错误:gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+

说明要安装gcc需要GMP、MPFR、MPC这三个库,可从ftp://gcc.gnu.org/pub/gcc/infrastructure/下载相应的压缩包。由于MPFR依赖GMP,而MPC依赖GMP和MPFR,所以要先安装GMP,其次MPFR,最后才是MPC。这里三个库我用的版本分别是gmp4.3.2,mpfr2.4.2和mpc0.8.1。

先开始安装GMP。解压GMP的压缩包后,得到源代码目录gmp-4.3.2。在该目录的同级目录下建立一个临时的编译目录,这里命名为gmp-build。然后开始配置安装选项,进入gmp-build目录,输入以下命令进行配置:

../gmp-4.3.2/configure --prefix=/usr/local/gmp-4.3.2

这里--prefix选项代表要将该库安装在哪里,我是装在/usr/local/gmp-4.3.2目录下,后面的安装都会用到这个选项。 

这时在gmp的编译目录下就会生成一个makefile文件,现在开始编译安装。

make

make check

sudo make install

这样就安装好了gmp。mpfr和mpc的安装方法与此类似。不过要注意配置的时候要把依赖关系选项加进去,具体后面两个库配置命令如下:

../mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2

../mpc-0.8.1/configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2

安装好这三个库之后,就可以正式开始安装gcc了。

与此前一样,先建一个编译gcc的临时目录gcc-build,进入该目录后配置安装选项:

../gcc-4.5.0/configure --prefix=/usr/local/gcc-4.5.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++

--with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1

gcc的配置选项有很多,具体可以参考gcc源文件目录下的安装说明。这里只安装了c和c++的编译器。(如果不指定编译的语言,则会在make时不通过,爆出某些文件找不到等错误,所以还是建议在此指定编译语言为c,c++)然后开始make编译。为保险起见,需要在环境变量LD_LIBRARY_PATH添加前面三个库的位置,键入以下命令:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib

然后重新make编译,在经过漫长的1小时等待后,终于编译完成。在安装说明里面还有测试这一步,不过那是可选的。直接make install安装,至此gcc就全部安装完成了。不过目前还不能使用新版本的gcc,因为新版的可执行文件还没加到命令的搜索路径中。在这里我为新版的gcc和g++命令分别建立了一个软链接。进入/usr/bin目录后,键入如下命令建立软链接。

sudo ln -s /usr/local/gcc-4.5.0/bin/gcc gcc45

sudo ln -s /usr/local/gcc-4.5.0/bin/g++ g++45

这样我使用新版本gcc的时候就可以用gcc45和g++45命令,同时也可使用原来的gcc编译程序。当然这里也可以直接将/usr/bin目录下gcc,g++命令重新链接到新版本的gcc可执行文件。在正式使用之前还有最后一个工作要做,就是将前面安装的三个库的路径加进环境变量LD_LIBRARY_PATH中,不然在编译程序的时候会出错。由于我不想每次编译程序都生成环境变量,所以需要编辑/etc目录下的bashrc文件配置shell环境。在这个文件中添加以下语句:

LD_LIBRARY_PATH=:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/gcc-4.5.0/lib

export LD_LIBRARY_PATH

保存重启系统后,就可以使用新装的gcc了。

以上就是我在CentOS 4.8安装gcc4.5.0的全过程。 

 

原帖地址:http://www.comdyn.cn/open-source/66-2010-05-19-00-55-17/164-centos-48-gcc450.html

 


http://www.niftyadmin.cn/n/1376481.html

相关文章

Javascript中parseInt的正确使用方式

定义和用法 parseInt() 函数可解析一个字符串,并返回一个整数。 语法 ?1parseInt(string, radix)parseInt(string, radix) 当参数radix的值为 0,或没有设置该参数时,parseInt()会根据 string来判断数字的基数。 返回值 返回解析后的数字。 提…

Hive之 数据存储

首先,Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。 其次,Hive 中所有的数据…

cocos2dx 字体外发光_JINX設計#制作斑驳生锈字体,全套教程简单操作

设计发光斑驳的字体特效,运用PS滤镜和纹理图片,运用笔刷和图层样式给最终的字体效果增添光感。第一步:创建一个1024*768的新文档。前景色#532118,背景色是#170b09。点击渐变工具(G),选取前景至背景的渐变,然…

在centOS 上安装git

先安装git依赖的包 yum install zlib-devel yum install openssl-devel yum install perl yum install cpio yum install expat-devel yum install gettext-devel 安装autoconf yum install autoconf 安装git wget http://www.codemonkey.org.uk/projects/git-snapshots/git/gi…

[BZOJ5109]大吉大利,晚上吃鸡!

Description 最近《绝地求生:大逃杀》风靡全球,皮皮和毛毛也迷上了这款游戏,他们经常组队玩这款游戏。在游戏中,皮皮和毛毛最喜欢做的事情就是堵桥,每每有一个好时机都能收到不少的快递。当然,有些时候并不…

故障转移集群的仲裁

Windows服务器故障转移集群(Windows Server Failover Cluster,简称WSFC)使用仲裁投票(Quorum Voting)决定集群的健康状况,或使故障自动转移,或使集群离线。当集群中的结点发生故障时&#xff0c…

move std 函数 示例_std::enable_if

上次学习了如何实现c中的is_same,当然是要参考cstd中提供的这些模板,然后理解自己实现一遍。c中的enable_if我并没有怎么使用过,但是为了学习这个新的知识,还是要了解一下enable_if的功能。在网上找enable_if的功能的时候&#xf…

Infobright 在ubuntu 下启动不起来

环境:Ubuntu 10.04 x86_64通过infobright-3.4.2-x86_64-ice.deb(下载地址)安装 dpkg -i infobright-3.4.2-x86_64-ice.deb 安装后运行/usr/local/infobright/postconfig.sh,选择不注册。 启动时发现无法启动,日志显示如下错误: mysqld: r…