安装GCC-4.6.1详细教程 – 残星

一、是什么Gcc

Linux下的GCC(GNU) C 编译器是GNU的可怕的功用、一种功能优胜的多平台编译器,它是GNU的代表作批准。。GCC是一点钟特级品编译器,可以编译各式各样的硬软件上的可履行性次。,它的履行效能比普通编译器高。。

GCC编译器可以创作C、C 说闲话源次、收敛规划与目的次编译、衔接到一点钟可履行性寄给报社,也许不让步可履行性寄给报社的著名的,GCC将创作一点钟命名寄给报社。在Linux零碎中,可履行性寄给报社缺勤一致的后缀,该零碎将可履行性寄给报社与可履行性寄给报社区别开来。。

二、海湾联合任务委任遵照的一份条约

后面提到的廉后缀成绩,GCC批准后缀区别出口寄给报社。,下面笔者来绍介海湾联合任务委任遵照的一份条约。

作为后缀寄给报社,C说闲话源指定遗传密码寄给报社;

作为后缀寄给报社,是由目的寄给报社结合的寄给报社库寄给报社。;
以C或.cc或.cxx为后缀的寄给报社,它是C 源指定遗传密码寄给报社;

h作为后缀寄给报社,次中包住的头寄给报社;

作为后缀寄给报社,是一点钟预测的C源指定遗传密码寄给报社;

作为后缀寄给报社,是一点钟预测的C 源指定遗传密码寄给报社;

M作为后缀寄给报社,这是Objy-C源指定遗传密码寄给报社;

作为后缀寄给报社,编译后的目的寄给报社;

s作为后缀寄给报社,是缀编说闲话的源指定遗传密码;

s作为后缀寄给报社,是一点钟预编译的缀编说闲话源指定遗传密码寄给报社。

三、GCC的履行议事程序

不在乎笔者称GCC是C说闲话的编译器,但用GCC创作可履行性寄给报社,由C说闲话源指定遗传密码寄给报社,相反,笔者命令阅历四个一组之物互互相牵连系的事物相干的搬家:预测(也)。,预测)、编译(编译)、缀编次(缀编)和衔接(衔接)。

命令GCC率先命令CPP停止预测,在预测议事程序中,源指定遗传密码寄给报社中包住的寄给报社(包含)、对预编译声明的辨析(如明确的宏明确)。

而且命令cc1编译,这么阶段创作鉴于出口寄给报社的.O后缀的目的寄给报社。。缀编议事程序是缀编说闲话做成某事一点钟搬家。,召唤任务,普通来讲,S作为后缀缀编说闲话源指定遗传密码寄给报社和缀编次、.s为后缀的缀编说闲话寄给报社批准预编译和缀编晚年的都创作以.o为后缀的目的寄给报社。

当创作整个的目的寄给报社时,GCC呼叫LD完成的终极锁上任务,这么阶段执意触点。在衔接阶段,整个的目的寄给报社都在履行器做成某事完完全全地状态投资。,同时,次命令的集合函数也衔接到右面。。

四、海湾联合任务委任的根生的决意和选择

当运用GCC编译器时,笔者必需让步骑马队伍命令的命令限制因素和寄给报社名。。GCC编译器的命令限制因素大约在100过去的。,这些限制因素做成某事块可能性根生的不被运用。,这边不料内部的最根生的的面积。、最经用限制因素

GCC的最根生的决意是:GCC [调动球员] [寄给报社名]
,调动球员是编译器命令的限制因素。,寄给报社名让步互相牵连的寄给报社名。

五、GCC的限制因素调动球员

-c,只编译,未衔接到可履行性寄给报社,编译器只从出口.c和支持物SOU创作.O后缀目的寄给报社。,它通经用于编译不包住主进化的子次寄给报社。。

-o
output_filename,确保出口寄给报社的著名的是OutPut.FielNeNe,同时这么著名的不克不及和源寄给报社同义词。也许缺勤让步这么调动球员,GCC让步了默许的可履行性寄给报社。

-g,创作记分调试器(GNU的GDB)所需的记分消息,您要调试源指定遗传密码,笔者必需补充物这么调动球员。

-O,优选法次创作、衔接,运用此调动球员,绝对的源指定遗传密码将被编译、衔接议事程序做成某事优选法处置,这么的可履行性寄给报社的履行效能可以受到上涨。,只,编译、衔接快速相当的地慢速的。。

-O2,编译比-O好、衔接,自然,绝对的编译、衔接议事程序会比较慢。。
-Idirname,将dirname所指数的倾斜附带阐明到次头寄给报社倾斜列表中,是预编译议事程序中运用的限制因素。六、GCC的使成为一部分办法运转境况:VMware? Workstation
7.1.2 build-301548
Linux版本:白色 Hat Enterprise Linux 5.5
内核版本:Linux
kernel 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386
GNU/Linux
留意:鉴于WordPress使逃避困难的的成绩,它可能性理由后续,量度时不要使再次发生指定遗传密码。
手工操作轻易获胜,拿 … 来说,前缀,with-gmp,with-mpfr,在MPC后面有两个
– 

1。下载使成为一部分包
阅读地址的GCC版本
阅读地址:
下载地址:
2。在/opt寄给报社夹做成某事p.t.bz2并减压
[root@rekfan.com ~]# cd /opt
[root@rekfan.com opt tar xjvf
.tar.bz2
三。确立或使安全使成为一部分倾斜
[root@rekfan.com opt mkdir
/usr/local//
4。出口使成为一部分倾斜
[root@rekfan.com opt cd
/usr/local//
5。词的搭配使成为一部分寄给报社
[root@rekfan.com ]# /opt//configure
–prefix=/usr/local/
(履行源倾斜)
OPT做成某事词的搭配命令,词的搭配为将GCC使成为一部分到目的倾斜/纯朴的/纯朴的/纯朴的,这边–prefix调动球员代表要将该库使成为一部分在哪里,我把它放在/Ur/Prime/Directory中,在下面的使成为一部分中运用此调动球员。

也许履行此搬家,则呈现以下误会
———————————————————————————-
[root@rekfan.com
]# /opt//configure –prefix=/usr/local//
checking
build system type… i686-pc-linux-gnu
checking host system type…
i686-pc-linux-gnu
checking target system type… i686-pc-linux-gnu
checking
for a BSD-compatible install… /usr/bin/install -c
checking whether ln works…
yes
checking whether ln -s works… yes
checking for a sed that does not
truncate output… /bin/sed
checking for gawk… gawk
checking for gcc…
no
checking for cc… no
checking for cl.exe… no
configure: error: in
`/usr/local/”:
configure: error: no acceptable C compiler found in
$PATH

See `” for more
底细。
———————————————————————————-
下面误会阐明$PATH里缺勤找到C的编译器
也许零碎有gcc编译器,而且设置境况变量
譬如:
export
PATH=$PATH:/usr/local/bin
也许缺勤,请先使成为一部分RPM包的GCC版本。
拔出Linux软件磁盘(通常在高音部或秒页),挂载激光唱片,按以下次顺序使成为一部分:

[root@rekfan.com opt rpm -ivh
cpp-4.1.2-48.el5.i386.rpm
[root@rekfan.com opt rpm -ivh
kernel-headers-2.6.18-194.el5.i386.rpm
[root@rekfan.com opt rpm -ivh
glibc-headers-2.5-49.i386.rpm
[root@rekfan.com
opt rpm -ivh
glibc-devel-2.5-49.i386.rpm
[root@rekfan.com
opt rpm -ivh
libgomp-4.4.0-6.el5.i386.rpm
[root@rekfan.com
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 specify
their
状态。
———————————————————————————-

误会传达GCC的使成为一部分命令GMP。、MPFR、MPC这三个库,可从下载相当的的紧缩包。因MPFR信赖于GMP,MPC信赖于GMP和MPFR,因而你命令先使成为一部分GMP,其次MPFR,充分地,它是MPC。。我在这边运用的三个书屋的版本是,和,整个入伙
在OPT寄给报社夹下。
①.使成为一部分
[root@rekfan.com opt tar jxvf
.tar.bz2
[root@rekfan.com opt mkdir
/usr/local/
[root@rekfan.com opt cd
/usr/local/
[root@rekfan.com ]# /opt//configure
–prefix=/usr/local/
[root@rekfan.com ]# make
(编译)
[root@rekfan.com ]# make install
(履行使成为一部分)
(2)使成为一部分
[root@rekfan.com opt tar jxvf
.tar.bz2
[root@rekfan.com opt mkdir
/usr/local/
[root@rekfan.com opt cd
/usr/local/
[root@rekfan.com ]# /opt//configure –prefix=/usr/local/
–with-gmp=/usr/local/
(留意在词的搭配时应添加信赖相干)
[root@rekfan.com
]# make
[root@rekfan.com ]# make
install
(3)使成为一部分
[root@rekfan.com opt tar jxvf
g.tar.bz2
[root@rekfan.com opt mkdir
/usr/local/
[root@rekfan.com opt cd
/usr/local/
[root@rekfan.com ]# /opt//configure –prefix=/usr/local/
–with-gmp=/usr/local/
–with-mpfr=/usr/local/
[root@rekfan.com ]#
make
[root@rekfan.com ]# make install
(4)再次使成为一部分GCC
词的搭配使成为一部分调动球员
[root@rekfan.com ]# cd
/usr/local/
[root@rekfan.com ]# /opt//configure –prefix=/usr/local/
-enable-threads=posix -disable-checking -disable-multilib
-enable-languages=c,c++ –with-gmp=/usr/local/
–with-mpfr=/usr/local/ –with-mpc=/usr/local/

6。编译和使成为一部分寄给报社
[root@rekfan.com
]# make
大约命令1个小时摆布。,喝杯coffee,在其他人走后留下来迟钝的在其他人走后留下来!
一点钟小时后···
秒个误会呈现了

翻开/usr/local//i686-pc-linux-gnu/libgcc/
CTRL F查找误会
查找以下误会
/———————————————————————————-
/usr/local//./gcc/cc1:
error while loading shared libraries: libmpc.so.2: cannot open shared object
file: No such file or directory
configure:3058: $? =
1
———————————————————————————-/
在互联网网络上找到receiver 收音机,您命令添加一点钟境况变量LDHLabVIELYPATH来表明LoA,参加以下命令:
[root@rekfan.com ]# export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local//lib:/usr/local//lib:/usr/local//lib
第6步
大约三小时后
充分地,编译成。,效应图

7。履行使成为一部分GCC
[root@rekfan.com ]# make install
[root@rekfan.com ]#

也许缺勤不测,因而现时是时分使成为一部分它了,只你不克不及运用GCC的编写,因编写的GCC还没有添加到命令搜索小路中!
8。安排软节
[root@rekfan.com /]# sudo ln -s /usr/local//bin/gcc
gcc461
[root@rekfan.com /]# sudo ln -s /usr/local//bin/g++
g++461
9。添加境况变量

在/ETC倾斜中翻开BASHC寄给报社,添加以下指定遗传密码:
LD_LIBRARY_PATH=:/usr/local//lib:/usr/local//lib:/usr/local//lib:/usr/local//lib

export LD_LIBRARY_PATH

转自:

发表评论

电子邮件地址不会被公开。 必填项已用*标注