热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

重新编译GCC-4.3.0

重新编译GCC-4.3.0--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
GCC是Unix下的程序编译器的集合,包括C,C++,Fortran77,Java等,升级GCC有助于缩短编译过程的时间,生成更加高效的程序,但是也可能会出现编译后的程序比较大.目前最新的版本是4.3.接下来就开始安装4.3版本.

首先要确认,你的Unix环境有那些编译语言.本人所用的系统为RedHat AS 4.0 U6版本

#gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
显示GCC的版本信息.

GCC环境可以不包含任何编译器,默认安装中会安装上C,C++,g77和Java.一般在升级GCC和编译器时需要用户指定升级那些编译器,本次将着重介绍升级C和C++的编译器,其中包括g95.g95即Fortran语言的最新版,很多时候,源码依然调用g77进行编译.

#gcc
gcc: no input files
# c++
c++: no input files
# g77
g77: no input files
说明c,c++,g77集成在GCC中

# java
-bash: java: command not found
这个表示没有安装上

安装GCC需要先安装mpfr和gmp (Fortran编译器需要这两个包)
先卸载.
# rpm -qa |grep gmp
gmp-devel-4.1.4-3
gmp-4.1.4-3

# rpm -e --nodeps gmp-devel-4.1.4-3
# rpm -e --nodeps gmp-4.1.4-3

# wget ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.2.tar.bz2
# tar jxf gmp-4.2.2.tar.bz2
# cd gmp-4.2.2
# ./configure --prefix=/usr --enable-cxx \
--enable-mpbsd
#make
#make install

# wget http://svn.cross-lfs.org/svn/rep ... -cumulative-1.patch
# wget http://www.mpfr.org/mpfr-current/mpfr-2.3.1.tar.bz2
# tar jxf mpfr-2.3.1.tar.bz2
# cd mpfr-2.3.1
# patch -Np1 -Z -i ../mpfr-2.3.1-cumulative-1.patch
# ./configure --prefix=/usr --enable-shared
# make
# make install

安装g95
# wget http://ftp.g95.org/g95-x86-linux.tgz
# tar zxf g95-x86-linux.tgz
# cp g95-install/bin/i686-suse-linux-gnu-g95 /usr/bin/g95

接下来开始安装gcc了,这里不建议彻底删除老版本的gcc,只需要把gcc指向到新的版本就行了.这样仍然可以使用老版本的gcc.

# wget http://ftp.gnu.org/gnu/gcc/gcc-4.3.0/gcc-4.3.0.tar.bz2
# tar jxf gcc-4.3.0.tar.bz2
# cd gcc-4.3.0
# sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
# mkdir -v ../gcc-build
# cd ../gcc-build
# ../gcc-4.3.0/configure --prefix=/usr \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-c99 \
--enable-long-long \
--enable-clocale=gnu \
--disable-libstdcxx-pch \
--disable-multilib \
--enable-languages=c,c++,f95

如果在--enable-languages=中添加了本来没有的语言make的过程中会报错.

# make bootstrap
# make -k check
# ../gcc-4.3.0/contrib/test_summary
# make install
# ln -sfv ../usr/bin/cpp /lib
# ln -sfv gcc /usr/bin/cc
# chown -Rv root:root /usr/lib/gcc/$(gcc -dumpmachine)/4.3.0/include
# ln -sfv `find /usr/lib/gcc -name ffitarget.h` /usr/include

完成后查看gcc
# gcc -v
[root@mailserver ~]# gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.3.0/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-c99 --enable-long-long --enable-clocale=gnu --disable-libstdcxx-pch --disable-multilib --enable-languages=c,c++,f95
Thread model: posix
gcc version 4.3.0 (GCC)
推荐阅读
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • 1、DashAPI文档Dash是一个API文档浏览器,使用户可以使用离线功能即时搜索无数API。程序员使用Dash可访问iOS,MacOS, ... [详细]
  • Docker安装Rabbitmq(配合宝塔)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker安装Rabbitmq(配合宝塔)相关的知识,希望对你有一定的参考价值。一、事前准备 ... [详细]
  • Maven入门、什么是Maven、如何使用Maven、Maven的项目结构、简单的Mavenjava项目、Maven常用命令、Maven项目之间的引用、Maven依赖的传递、可选、排除day01
    目录第一节Maven入门1.1什么是Maven1.2如何使用Maven第一步:下载Maven第二步:配置Maven的环境变量第三步:了解什 ... [详细]
  • 下载了一个东西想看一下摘要是否正确,但是cmd没有这个小工具,只好用Ubuntu来辅助一下,在右键菜单内加入一个选项叫”在这里打开Ubuntu”,期望是点下去后打开wsl然后工作目 ... [详细]
  • 1jdk去网站下载,然后拷贝到linux上;或直接wgethttp:download.oracle.comotn-pubjavajdk8u181-b1 ... [详细]
  • 之前项目在windows2003服务器上设置定时任务,每天执行。现在把项目移植到linux系统。也要在linux系统上设置计划任务。但是之前我从来没有做过。所以多得不 ... [详细]
author-avatar
尕尕东东东_534
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有