在RedHat AS4 下面安装gcc 4.3.2

开发需要提供一个RedHat4.6 GCC4.3.2的环境,下面说说我的安装过程吧:

由于,我们的集群中RedHat是EL5.5的,所以,还是在老的机器(RedHat AS4)上装吧,因此,我只需要安装一个GCC就好。

安装第一天:
使用RPM包安装,可是它需要的依赖包太多了,而且依赖包与版本又有很大关系。。折腾了一天,决定放弃。。

安装第二天:
1.在官网上下载一个gcc-4.3.2.tar.gz

tar -xzvf gcc-4.3.2.tar.gz

2.GCC的安装需要两个软件,分别是:gmp-4.2.1+和mpfr-2.3.0+
因此,我下载的是gmp-4.2.2.tar.bz2和mpfr-2.3.1.tar.gz以及mpfr的补丁文件patches

tar -xjf gmp-4.2.2.tar.bz2
tar -xzvf mpfr-2.3.1.tar.gz

由于mpfr依赖gmp,所以我们先来安装它。
[color=red]注:由于我的redhat是64位的,所以采用以下命令,否则配置时提示:could not find libgmp or use a different ABI[/color]

cd gmp-4.2.2
./configure --prefix=/usr --host=x86_64-redhat-linux ABI=64 //指定gmp安装在/usr目录下,默认是安装在/usr/local下面,ABI=64代表是操作系统是64位的。如果ABI没有指定的话,在安装mpfr时会报错!
make
make check
make install
cd ..

修改/etc/profile文件,添加:
export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
下面来安装mpfr

cd mpfr-2.3.1
patch -N -Z -p1 < ../patches
./configure --prefix=/usr --with-gmp-include=/usr/include --with-gmp-lib=/usr/lib
make
make check
make install
cd ..

其中,patches文件是我们从http://www.mpfr.org/mpfr-2.3.1/patches网站上下载的,注意,不能手动修改该文件,否则在运行patch文件时,会生成一个后缀为rej的文件,该现象说明打补丁出错!不同版本的mpfr对应的patches文件是不同的,可以自己去官网上下载对应版本的补丁文件。
在配置时,[color=red]最好指出gmp的安装目录,否则会出现“undefined reference to '__gmp_get_memory_functions'”问题。如果不指出,系统默认找/usr/lib下的库文件和/usr/include下的头文件。如果gmp安装在/usr目录下,在配置时,以上两个参数可以不指定,如果安装在其他目录下,需要指定[/color]。
3.安装GCC

cd gcc-4.3.2
./configure --prefix=/usr --with-mpfr=/usr --with-gmp=/usr --enable-languages=c,c++,java --enable-shared --enable-threads=posix --disable-checking //最好不要指定主机信息,如果指定不对,会出错
make //经过2个小时的编译,终于完成
make check
make install
cd ..

4.查看gcc版本,如下图:
[img]http://dl2.iteye.com/upload/attachment/0086/5415/879edb94-cfe0-3177-b24c-d4cf2e02bc59.png[/img]

[size=medium][color=red]第二次装gcc心得:[/color][/size]

gcc需要gmp,mpfr,mpc这三个依赖包,依次安装这些工具的时候,记得要指定已经安装的包的库文件和头文件路径,(如,--with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib)。

[color=red]安装过程中出现的问题如下:[/color]
1、在安装mpc时,需指定gmp和mpfr的库文件和头文件路径。在编译mpc时出现“libmpc.so : undefined reference to '_gmpn_sqr_n';libmpc.so : undefined reference to '_gmp_rand”问题。
解决方法:更换了更高版本的mpc,编译通过。不过具体这是什么问题造成的还不清楚,请过知道的童鞋告诉一下~
2、在安装gcc时也需要指定三个依赖包的安装路径。
在编译gcc的时候出现了:configure: error: cannot compute suffix of object files: cannot compile
解决方法:
将已经安装的三个依赖包的库文件的路径加入到lD_LIBRARY_PATH中。


按照以上方法编译gcc,很不幸,问题依然没有结束,在gcc编译1.5个小时的时候,出现了“找不到autogen命令”
于是乎,在安装autogen时,需要依赖guile,但是,guile又依赖6个包,包含:libgmp,libiconv,libintl,libltdl,libunistring,libffi
个人认为安装libffi比较麻烦,在配置方法:
./configure CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
根据提示,还配置了几个环境变量,具体名字不记得了。
依赖包安装好了之后,开始安装guile,在安装guile时,总是出现“gcc:cannot specify -o with -c or -S with multuple files”这个问题。于是,更换了一个较低版本的guile,编译成功,接下来autogen工具也比较顺利!
回来继续编译gcc,希望这次能成功吧!待续。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
Redhat离线安装gcc的过程中,可以参考以下步骤: 1. 首先确定Redhat机器上没有安装gcc。可以使用命令`gcc --version`来检查是否已经安装gcc。如果未安装或版本较低,可以继续下一步。 2. 从Redhat官方网站或其他可信的源下载gcc的离线安装包。可以选择与机器操作系统版本和架构相匹配的安装包。 3. 将下载的gcc安装包传输到Redhat机器上。可以使用USB驱动器、移动硬盘等存储设备将安装包复制到机器上。 4. 在Redhat机器上创建一个新的安装目录,例如`/opt/gcc`。将安装包解压缩到这个目录中。 5. 打开终端,使用命令`cd /opt/gcc`进入安装目录。 6. 运行以下命令安装gcc的依赖包: ``` rpm -ivh glibc-devel-2.12-1.80.el6.x86_64.rpm ``` 7. 等待安装程序完成依赖包的安装。 8. 运行以下命令安装gcc: ``` rpm -ivh gcc-<version>.rpm ``` 这里的`<version>`应替换为安装包的版本号。 9. 安装完成后,可以使用命令`gcc --version`验证gcc是否成功安装。 需要注意的是,离线安装gcc可能会涉及到更多的依赖包和步骤,具体操作步骤可能会因版本和环境而有所不同。建议在安装之前仔细阅读相关文档或官方指南以确保正确安装。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redhat离线安装gcc.txt](https://download.csdn.net/download/u012521830/12821961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [RedHat Linux 下离线手动安装gcc](https://blog.csdn.net/ezgame/article/details/81670285)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值