安装GCC-4.6.1详细教程
- 格式:docx
- 大小:164.55 KB
- 文档页数:7
gcc的使用方法GCC(GNU Compiler Collection)是一款由GNU开发的编程语言编译器集合,支持多种编程语言,如C、C++、Fortran等。
它被广泛用于各种操作系统和硬件平台上的软件开发,提供了强大的功能和灵活的配置选项。
本文将介绍GCC的基本使用方法,帮助读者快速上手。
一、安装GCC要使用GCC,首先需要在您的计算机上安装它。
GCC可以在多个操作系统上运行,包括Linux、Windows和Mac OS。
具体的安装方法因操作系统而异,下面将分别介绍。
1. 在Linux上安装GCC:在大多数Linux发行版中,GCC已经默认安装。
如果您的系统中没有安装GCC,您可以通过包管理器来安装它。
例如,在Debian或Ubuntu系统上,可以使用以下命令安装GCC:```sudo apt-get install gcc```其他Linux发行版的安装方法请参考相应的文档。
2. 在Windows上安装GCC:在Windows上,可以通过MinGW或MSYS2来安装GCC。
这两个工具集提供了一种在Windows环境中使用GCC的方式。
您可以从官方网站上下载并按照安装向导进行安装。
3. 在Mac OS上安装GCC:在Mac OS上,可以使用Homebrew或MacPorts来安装GCC。
这两个软件包管理系统可以让您以与Linux相似的方式在Mac OS上安装软件。
例如,使用Homebrew安装GCC的命令如下:```brew install gcc```其他安装方法请参考相应文档。
二、编写源代码安装好GCC后,我们就可以开始编写源代码了。
GCC支持多种编程语言,但本文以C语言为例进行介绍。
打开任何文本编辑器,创建一个后缀名为.c的文件,并编写您的C 源代码。
例如,创建一个名为`hello.c`的文件,其中包含以下代码:```c#include <stdio.h>int main() {printf("Hello, world!\n");return 0;}```三、编译和运行代码一旦您编写好了源代码,接下来就可以使用GCC将其编译成可执行文件。
相信现在还有不少人在用经典的RedHat9,毕竟他是完全免费的红帽Linux嘛!现在介绍一下在安装gcc时可能遇到的问题。
在安装gcc时,可能会提示要求安装下面几个软件包:binutils-2.13.90.0.18-9.i386.rpmcpp-3.2.2-5.i386.rpmglibc-devel-2.3.2-11.9.i386.rpm别担心,一步一步来。
首先在red hat 第一张光盘中查找以上三个软件包,并安装它们。
由于同学做实验时不可能人手一套光盘,因为为了方便,从光盘中将要用到的文件拷贝出来放到优盘上,应用文件系统管理方式进行挂载优盘,即通过root用户登录,然后通过fdisk检查已插入优盘,并通过mount命令进行挂载。
[root@RedHat9 mnt]# mount /dev/sdb1 /mnt/cdrom/[root@RedHat9 mnt]# rpm -ivh cdrom/gcc/binutils-2.13.90.0.18-9.i386.rpm warning: cdrom/gcc/binutils-2.13.90.0.18-9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60ePreparing... ######################################### ## [100%]1:binutils ######################################### ## [100%][root@RedHat9 mnt]# rpm -ivh cdrom/gcc/cpp-3.2.2-5.i386.rpmwarning: cdrom/gcc/cpp-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60ePreparing... ######################################### ## [100%]1:cpp ######################################### ## [100%][root@RedHat9 mnt]# rpm -ivh cdrom/gcc/glibc-devel-2.3.2-11.9.i386.rpm warning: cdrom/gcc/glibc-devel-2.3.2-11.9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e若提示出错,需要安装以下文件:[root@RedHat9 mnt]# rpm -ivhcdrom/gcc/glibc-kernheaders-2.4-8.10.i386.rpmwarning: cdrom/gcc/glibc-kernheaders-2.4-8.10.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60ePreparing... ######################################### ## [100%]1:glibc-kernheaders ######################################### ## [100%][root@RedHat9 mnt]# rpm -ivhcdrom/RedHat/RPMS/glibc-devel-2.3.2-11.9.i386.rpmwarning: cdrom/gcc/glibc-devel-2.3.2-11.9.i386.rpm: V3 DSA signature:NOKEY, key ID db42a60ePreparing... ######################################### ## [100%]1:glibc-devel ######################################### ## [100%]这里仅上面的一步安装就完成了。
RedHat5.5 升级安装GCC-4.6.1详细教程一、什么是GccLinux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。
gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。
在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。
二、gcc所遵循的部分约定规则前面提到便宜的后缀问题,而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc 所遵循的部分约定规则。
.c为后缀的文件,C语言源代码文件;.a为后缀的文件,是由目标文件构成的档案库文件;.C或.cc或.cxx为后缀的文件,是C++源代码文件;.h为后缀的文件,是程序所包含的头文件;.i为后缀的文件,是已经预处理过的C源代码文件;.ii为后缀的文件,是已经预处理过的C++源代码文件;.m为后缀的文件,是Objective-C源代码文件;.o为后缀的文件,是编译后的目标文件;.s为后缀的文件,是汇编语言源代码文件;.S为后缀的文件,是经过预编译的汇编语言源代码文件。
三、Gcc的执行过程虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。
●命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。
●接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。
Gcc 编译与安装(robinjun)1 下载在GCC网站上()或者通过网上搜索可以查找到下载资源。
目前GCC的最新版本为4.2.1。
可供下载的文件一般有两种形式:gcc-4.1.2.tar.gz和gcc-4.1.2.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。
我安装下载的版本是gcc-4.6.1.tar.bz22. 解压缩拷贝gcc-4.1.2.tar.bz2(我下载的压缩文件)到/usr/local/src(根据自己喜好选择)下,根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):% tar zxvf gcc-4.1.2.tar.gz或者% bzcat gcc-4.1.2.tar.bz2 | tar xvf -新生成的gcc-4.1.2这个目录被称为源目录,用${srcdir}表示它。
以后在出现${srcdir}的地方,应该用真实的路径来替换它。
用pwd命令可以查看当前路径。
在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html 阅读。
我解压后的路径为/home/gcc-4.6.1截图如下:3. 建立目标目录目标目录(用${objdir}表示)是用来存放编译结果的地方。
GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。
例如,可以这样建立一个叫/usr/local/gcc-4.1.2的目标目录:% mkdir /usr/local/gcc-4.1.2% cd gcc-4.1.2以下的操作主要是在目标目录${objdir} 下进行。
(否则会出错,后面有解释)我的目标目录是/usr/local/gcc-4.6.1 截图如下:(初始时目录下为空)4. 配置4.1 正常情况配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。
ubuntu11.10安装gcc4.4ubuntu 11.10的gcc版本是4.6.1,版本太高,编译android时出错,要把gcc版本改为4.4.3。
通过gcc -v命令可以发现gcc库在/usr/lib/gcc/i686-linux-gnu 目录下,该目录下有当前系统支持的各种版本gcc库。
在安装gcc 4.4前该目录下是没有4.4目录的,安装gcc 4.4后该目录下就会多出4.4这个目录,且该4.4目录下有各种相应库文件。
ubuntu 32bit系统下安装gcc 4.4的最好方法是仅用以下两条命令,不需要其它命令,否则编译时可能会出错。
sudo apt-get install gcc-4.4sudo apt-get install g++-4.4装完后在/usr/bin目录下$ ls -l gcc*lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6 -rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6发现gcc 链接到gcc-4.6, 需要将它改为链接到gcc-4.4 :sudo mv gcc gcc.baksudo ln -s gcc-4.4 gcc同理ls -l g++*lrwxrwxrwx 1 root root 7 2011-08-14 15:17 g++ -> g++-4.6-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6需要将g++链接改为g++-4.4:/usr/bin$ sudo mv g++ g++.bak/usr/bin$sudo ln -s g++-4.4 g++再查看gcc和g++版本号:gcc -vg++ -v均显示gcc version 4.4.6 ,说明gcc 4.4安装成功。
ubuntu下安装gcc在ubuntu下安装gcc(联⽹下)第⼀次写blog,多多包涵!gcc安装步骤废话不多说,gcc安装步骤如下:1. sudo apt update2. sudo apt install build-essential如果要验证gcc编译器是否已经安装完毕,可以使⽤gcc --version来打印gcc版本号。
安装可能出现的问题问题⼀:问题描述:按照步骤输⼊上述命令⾏仍⽆法安装build-essential,如图所⽰:也就是:现在没有可⽤的软件包 build-esential,但是它被其它的软件包引⽤了。
这可能意味着这个缺失的软件包可能已被废弃,或者只能在其他发布源中找到E: 软件包 build-esential 没有可供安装的候选者解决⽅法:这与ubutun官⽅的默认更新源soruces.list有关.我们只需要修改soruces.list⽂件,在⾥⾯添加第三⽅更新源即可解决问题。
由于soruces.list默认是只读⽂件,所以我们要修改其权限。
1. cd /etc/apt2. ll3. sudo chmod 777 soruces.list然后在计算机中找到该⽂件,将原本的替换为下⾯的源链接(建议将原链接备份)deb https:///ubuntu/ xenial main restricted universe multiverse# deb-src https:///ubuntu/ xenial main restricted universe multiversedeb https:///ubuntu/ xenial-updates main restricted universe multiverse# deb-src https:///ubuntu/ xenial-updates main restricted universe multiversedeb https:///ubuntu/ xenial-backports main restricted universe multiverse# deb-src https:///ubuntu/ xenial-backports main restricted universe multiversedeb https:///ubuntu/ xenial-security main restricted universe multiverse# deb-src https:///ubuntu/ xenial-security main restricted universe multiverse# deb https:///ubuntu/ xenial-proposed main restricted universe multiverse# deb-src https:///ubuntu/ xenial-proposed main restricted universe multiverse问题⼆:问题描述:在执⾏sudo apt install build-essential有时会出现如图所⽰问题:解决⽅法:可以使⽤下⾯命令⾏强制解锁:1. sudo rm /var/cache/apt/archives/lock2. sudo rm /var/lib/dpkg/lock感谢以下博主提供的帮助。
Ubuntu 中安装低版本的gcc/g++程序经常因为本机的Gcc版本过高,需要这样那样的修改,烦的很!索性直接降级gcc和g++, 而且可以很容易切换。
ubuntu 12.04 中带的Gcc/G++都是4.6了,我们把系统默认的降级到4.4 $sudo apt-get install gcc-4.4$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40 (这里“40”是优先级,值越大优先级越高)$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 (本机自带的设置为60更高的优先级)选择系统默认的gcc$sudo update-alternatives --config gccSelection Path Priority Status------------------------------------------------------------* 0 /usr/bin/gcc-4.6 60 auto mode1 /usr/bin/gcc-4.4 40 manual mode2 /usr/bin/gcc-4.6 60 manual mode默认系统用最高优先级的,这里我们选择1就可以了接下来,g++ 同样的步骤操作$sudo apt-get install g++-4.4$sudo apt-get install g++-4.4-multilib$sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 40 $sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 60$sudo update-alternatives --config g++Selection Path Priority Status------------------------------------------------------------* 0 /usr/bin/g++-4.6 60 auto mode1 /usr/bin/g++-4.4 40 manual mode2 /usr/bin/g++-4.6 60 manual mode选择1.如果想改为高版本的随时用update-alternatives --config 命令切换!。
gcc安装gcc安装1. 下载安装wget /gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gztar -xvzf gcc-9.3.0.tar.gzcd gcc-9.3.0/mkdir install/cd install../configure --prefix=/home/aqzhu/my_opt/gcc-9.3.0/install --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib报错:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.Try the --with-gmp, --with-mpfr and/or --with-mpc options to specifytheir locations. Source code for these libraries can be found attheir respective hosting sites as well as atftp:///pub/gcc/infrastructure/. See also/install/prerequisites.html for additional info. Ifyou obtained GMP, MPFR and/or MPC from a vendor distribution package,make sure that you have installed both the libraries and the headerfiles. They may be located in separate packages.2. 安装GMP、MPFR、MPC下载GMP、MPFR、MPC:https:///download/gmp/https:///mpfr-current/https:///mpc/download.html安装GMPlzip -d gmp-6.0.0a.tar.lz解压为:gmp-6.0.0a.tartar -xvf gmp-6.0.0a.tar[aqzhu@k063 gmp-6.0.0]$ mkdir install[aqzhu@k063 gmp-6.0.0]$ cd install/[aqzhu@k063 gmp-6.0.0]$ ../configure --prefix=/home/aqzhu/my_opt/gcc_third/gmp-6.0.0/installmakemake install安装MPFR../configure --prefix=/home/aqzhu/my_opt/gcc_third/mpfr-4.1.0/install --with-gmp=/home/aqzhu/my_opt/gcc_third/gmp-6.0.0/installmakemake install安装MPC../configure --prefix=/home/aqzhu/my_opt/gcc_third/mpc-1.2.0/install --with-gmp=/home/aqzhu/my_opt/gcc_third/gmp-6.0.0/install --with-mpfr=/home/aqzhu/my_opt/gcc_third/mpfr-4.1.0/installmake报错:../../src/asin.c:132:27: 错误:‘ULONG_MAX’未声明(在此函数内第⼀次使⽤)MPC_ASSERT(2 * k - 1 <= ULONG_MAX / (2 * k - 1));../src/asin.c加⼊:#include <limits.h>安装:make install修改 .bashrcLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/aqzhu/my_opt/gcc_third/gmp-6.0.0/install/libLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/aqzhu/my_opt/gcc_third/mpfr-4.1.0/install/libLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/aqzhu/my_opt/gcc_third/mpc-1.2.0/install/lib3. 安装gcc../configure --prefix=/home/aqzhu/my_opt/gcc-9.3.0/install --enable-bootstrap --disable-checking --enable-languages=c,c++ --disable-multilib --enable-threads=posix --with-gmp=/home/aqzhu/my_opt/gcc_third/gmp-6.0.0/install --with-mpfr=/home/a make -jmake check(可选)make install修改.bashrcLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/aqzhu/my_opt/gcc-9.3.0/install/binexport PATH="${PATH}:/home/aqzhu/my_opt/gcc-9.3.0/install/bin"alias gcc='/home/aqzhu/my_opt/gcc-9.3.0/install/bin/gcc'4. 使⽤检查是否⽀持avx512。
Ubuntu11.04中搭建交叉编译环境(arm-linux-gcc-4.6.1版本)声明:本文主要参考/xt_xiaotian/article/details/6836739,并根据实际情况作了一定的修改与说明编译环境:内核名称:Linux内核发行版:2.6.38-11-generic内核版本:#50-Ubuntu SMP Mon Sep 12 21:18:14 UTC 2011硬件架构名称:i686硬件平台:i386操作系统:GNU/Linux当前系统gcc版本号:4.5.2在Linux中建立整个ARM交叉编译环境的整体过程为:1、下载源码包2、建立编译目录并设置环境变量3、安装内核头文件4、安装二进制工具(binutils)5、建立初始编译器工具链(简版gcc)6、建立glibc库7、建立全套编译器工具链(full gcc)8、验证一、下载源码包GNU的所有源码文件都可以到这个地址下载:/gnu/Linux Kernel源代码可以去这里下载:mpc可以去这里下载:下载的源码包如下:binutils-2.21.1.tar.bz2gcc-4.6.1.tar.gzglibc-2.14.tar.gzglibc-linuxthreads-2.5.tar.bz2glibc-ports-2.13.tar.gzgmp-5.0.2.tar.bz2linux-2.6.32.45.tar.gzmpc-0.9.tar.gzmpfr-2.4.2.tar.gz注:mpfr不建议使用3.0.0版本。
mpfr-3.0.0有Bug,会导致gcc编译不过。
二、建立编译目录并设置环境变量选定自己的工作目录,如我选择/opt/embedded作为自己的工作目录。
然后再embedded 中建立build-tools、kernel、tools三个文件夹。
实例:root@ubuntu:/opt/ming# cd /opt/root@ubuntu:/opt# mkdir embeddedroot@ubuntu:/opt# cd embedded/root@ubuntu:/opt/embedded# mkdir build-tools kernel toolsroot@ubuntu:/opt/embedded# cd build-tools/root@ubuntu:/opt/embedded/build-tools# mkdir build-binutils build-boot-gcc build-glibc build-gcc各文件夹的作用如下:/opt/embedded:交叉编译环境的主目录/opt/embedded/build-tools:存放binutils、gcc、glibc等GNU源码和用来编译这些源代码的目录/opt/embedded/kernel:用来存放Linux内核源代码/opt/embedded/tools:用来存放编译好的交叉编译工具和库文件/opt/embedded/build-tools/build-binutils:编译binutils的目录/opt/embedded/build-tools/build-boot-gcc:编译gcc启动部分的目录/opt/embedded/build-tools/build-glibc:编译glibc的目录/opt/embedded/build-tools/build-gcc:编译整个gcc的目录建立好编译目录之后便是设置环境变量(建议直接在~/.bashrc中修改,注意修改之后要重新运行Terminal)。
解压缩根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):% tar xzvf gcc-3.4.0.tar.gz或者% bzcat gcc-3.4.0.tar.bz2 | tar xvf -新生成的gcc-3.4.0这个目录被称为源目录,用${srcdir}表示它。
以后在出现${srcdir}的地方,应该用真实的路径来替换它。
用pwd命令可以查看当前路径。
在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。
建立目标目录目标目录(用${objdir}表示)是用来存放编译结果的地方。
GCC建议编译后的文件不要放在源目录${srcdir}中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。
例如,可以这样建立一个叫 gcc-build 的目标目录(与源目录${srcdir}是同级目录):% mkdir gcc-build% cd gcc-build以下的操作主要是在目标目录 ${objdir}下进行。
配置配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。
其中,${destdir}不能与${objdir}或${srcdir}目录相同。
${srcdir}下的confi gure来完成的。
其命令格式为(记得用你的真实路径替换${destdir})配置是通过执行% ${srcdir}/configu re --prefix=${destdir} [其它选项]例如,如果想将GCC 3.4.0安装到/usr/local/gcc-3.4.0目录下,则${destdir}就表示这个路径。
在我的机器上,我是这样配置的:% ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checki n g --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java将GCC安装在/usr/local/gcc-3.4.0目录下,支持C/C++和JAVA语言,其它选项参见G CC提供的帮助说明。
安装GCC-4.6.1详细教程一、什么是GccLinux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。
gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。
在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。
二、gcc所遵循的部分约定规则前面提到便宜的后缀问题,而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc 所遵循的部分约定规则。
.c为后缀的文件,C语言源代码文件;.a为后缀的文件,是由目标文件构成的档案库文件;.C或.cc或.cxx为后缀的文件,是C++源代码文件;.h为后缀的文件,是程序所包含的头文件;.i为后缀的文件,是已经预处理过的C源代码文件;.ii为后缀的文件,是已经预处理过的C++源代码文件;.m为后缀的文件,是Objective-C源代码文件;.o为后缀的文件,是编译后的目标文件;.s为后缀的文件,是汇编语言源代码文件;.S为后缀的文件,是经过预编译的汇编语言源代码文件。
三、Gcc的执行过程虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。
●命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。
●接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。
汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。
●当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。
在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。
四、Gcc的基本用法和选项在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。
Gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数Gcc最基本的用法是∶gcc[options] [filenames] ,其中options就是编译器所需要的参数,filenames给出相关的文件名称。
五、Gcc的参数选项-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。
如果不给出这个选项,gcc就给出预设的可执行文件a.out。
-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。
-O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。
-O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。
-Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。
六、Gcc的安装方法运行环境:VMware? Workstation 7.1.2 build-301548 Linux版本:Red Hat Enterprise Linux 5.5kernel版本:Linux kernel 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386 GNU/Linux注意:因为wordpress转义的问题:可能会导致下面的--翻译成—,大家在试验的时候不要复制上面的代码自己手动敲写,比如prefix,with-gmp,with-mpfr,with-mpc前都是两个 -1.下载gcc-4.6.1安装包gcc各版本浏览地址:/gnu/gcc/gcc-4.6.1浏览地址:/gnu/gcc/gcc-4.6.1/gcc-4.6.1下载地址:/gnu/gcc/gcc-4.6.1/gcc-4.6.1.tar.bz2 2.将gcc-4.6.1.tar.bz2放到/opt文件夹下解压[root@ ~]# cd /opt[root@ opt]# tar xjvf gcc-4.6.1.tar.bz23.创建安装目录[root@ opt]# mkdir /usr/local/gcc-4.6.1/4.进入安装目录[root@ opt]# cd /usr/local/gcc-4.6.1/5.配置安装文件[root@ gcc-4.6.1]# /opt/gcc-4.6.1/configure--prefix=/usr/local/gcc-4.6.1(执行源目录 /opt/gcc-4.6.1/中的configure命令,配置将gcc安装到目标目录/usr/local/gcc-4.6.1/下,这里–prefix选项代表要将该库安装在哪里,我是装在/usr/local/gcc-4.6.1目录下,后面的安装都会用到这个选项)如果执行这步的时候出现了如下错误:----------------------------------------------------------------------------------[root@ gcc-4.6.1]# /opt/gcc-4.6.1/configure--prefix=/usr/local/gcc-4.6.1/checking build system type… i686-pc-linux-gnuchecking host system type… i686-pc-linux-gnuchecking target system type… i686-pc-linux-gnuchecking for a BSD-compatible install… /usr/bin/install -cchecking whether ln works… yeschecking whether ln -s works… yeschecking for a sed that does not truncate output… /bin/sedchecking for gawk… gawkchecking for gcc… nochecking for cc… nochecking for cl.exe… noconfigure: error: in `/usr/local/gcc-4.6.1':configure: error: no acceptable C compiler found in $PATHSee `config.log' for more details.----------------------------------------------------------------------------------上面错误说明$PATH里没有找到C的编译器如果系统有gcc编译器,那就设置下环境变量比如:export PATH=$PATH:/usr/local/bin如果没有找到那么先安装gcc低版本的rpm包插入linux软件盘(一般在第一张或第二张),挂载光盘,按下面顺序依次安装:[root@ opt]#rpm -ivh cpp-4.1.2-48.el5.i386.rpm[root@ opt]#rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm [root@ opt]#rpm -ivh glibc-headers-2.5-49.i386.rpm[root@ opt]#rpm -ivh glibc-devel-2.5-49.i386.rpm[root@ opt]#rpm -ivh libgomp-4.4.0-6.el5.i386.rpm[root@ opt]#rpm -ivh gcc-4.1.2-48.el5.i386.rpm重复步骤5,又有新错误了,下面是部分错误代码!如果没有错误,直接跳到步骤7 !----------------------------------------------------------------------------------configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.Try the --with-gmp, --with-mpfr and/or --with-mpc options to specifytheir locations.----------------------------------------------------------------------------------错误说明要安装gcc需要GMP、MPFR、MPC这三个库,可从ftp:///pub/gcc/infrastructure/下载相应的压缩包。
由于MPFR依赖GMP,而MPC依赖GMP和MPFR,所以要先安装GMP,其次MPFR,最后才是MPC。
这里三个库我用的版本分别是gmp4.3.2,mpfr2.4.2和mpc0.8.1,都放在/opt 文件夹下。
①.安装gmp4.3.2[root@ opt]# tar jxvf gmp-4.3.2.tar.bz2[root@ opt]# mkdir /usr/local/gmp-4.3.2[root@ opt]# cd /usr/local/gmp-4.3.2[root@ gmp-4.3.2]# /opt/gmp-4.3.2/configure--prefix=/usr/local/gmp-4.3.2[root@ gmp-4.3.2]# make (编译)[root@ gmp-4.3.2]# make install (执行安装)②安装mpfr2.4.2[root@ opt]# tar jxvf mpfr2.4.2.tar.bz2[root@ opt]# mkdir /usr/local/mpfr-2.4.2[root@ opt]# cd /usr/local/mpfr-2.4.2[root@ mpfr-2.4.2]# /opt/mpfr-2.4.2/configure--prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2(注意配置的时候要把依赖关系选项加进去)[root@ mpfr-2.4.2]# make[root@ mpfr-2.4.2]# make install③安装mpc0.8.1[root@ opt]# tar jxvf gmpc0.8.1.tar.bz2[root@ opt]# mkdir /usr/local/mpc-0.8.1[root@ opt]# cd /usr/local/mpc-0.8.1[root@ mpc-0.8.1]# /opt/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[root@ mpc-0.8.1]# make[root@ mpc-0.8.1]# make install④再次安装GCC 配置安装选项[root@ mpc-0.8.1]# cd /usr/local/gcc-4.6.1[root@ gcc-4.6.1]# /opt/gcc-4.6.1/configure--prefix=/usr/local/gcc-4.6.1 -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.16.编译安装文件[root@ gcc-4.6.1]#make大概需要1个小时左右,喝杯coffee,慢慢等待吧!一个小时后···第二个错误出现了:打开/usr/local/gcc-4.6.1/i686-pc-linux-gnu/libgcc/config.logctrl+f查找error 发现如下错误/----------------------------------------------------------------------------------/usr/local/gcc-4.6.1/./gcc/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directoryconfigure:3058: $? = 1----------------------------------------------------------------------------------/在网上找到了解决方法,需要添加环境变量LD_LIBRARY_PATH以指出前面三个库的位置,键入以下命令:[root@ gcc-4.6.1]#exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local /gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib再次执行步骤6→大概三小时后···终于编译成功了,效果图入下:7.执行安装gcc[root@ gcc-4.6.1]#make install[root@ gcc-4.6.1]#如果不出意外,那么到现在应该安装成功了,不过还是不能使用新版本的gcc,因为新版本的gcc还没有加入命令搜索路径中!8.建立软链接[root@ /]#sudo ln -s /usr/local/gcc-4.6.1/bin/gcc gcc461[root@ /]#sudo ln -s /usr/local/gcc-4.6.1/bin/g++ g++4619.添加环境变量打开/etc目录下的bashrc文件添加如下代码:LD_LIBRARY_PATH=:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/m pfr-2.4.2/lib:/usr/local/gcc-4.6.1/libexport LD_LIBRARY_PATH。