找回密码
 注册
关于网站域名变更的通知
查看: 407|回复: 1
打印 上一主题 下一主题

redhat linux上安装 gcc编译器

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-3-9 17:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种:
: p3 r% G# H; u5 Z4 G- y, o  1)一种是软件的源代码,您需要自己动手编译它。这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz)。! g+ N5 o: y4 j( I
  2)另一种是软件的可执行程序,你只要安装它就可以了。这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。* b& G+ u; i  Q) D, C
  当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包。只要您理解了以下的思路,这两种形式的安装包也不在话下了。
6 [- E" \! P$ Z: P+ R' c  下面,我们就分成两个部分来说明软件安装思路:
/ F7 R, L, f" {; m第一部分:搞定.tar.gz
  \, C9 t4 o# G/ z2 N1 @  1.首先,使用tar -xzvf来解开这个包,如:/ ^) k8 d; n0 Z7 E
  #tar -xzvf apache_1_3_6_tar.gz
, ?0 d5 H* p# Q6 p9 c* E  这样就会在当前目录中创建了一个新目录(目录名与.tat.gz包的文件名类似),用来存放解压了的内容。如本例中就是apache_1.3.6& @& @8 O/ g& u8 M
  2.进入这个目录,再用ls命令查看一下所包含的文件,如:( u/ @$ d, K! V
  #cd apache_1.3.6
2 _& V  }: y. A- M6 d; `; [/ `  #ls1 e; R. Y- l- q7 U* w
  你观察一下这个目录中包含了以下哪一个文件:configure、Makefile还是Imake。4 |( I; g4 E1 n
  1)如果是configure文件,就执行:
" {2 y$ L# `0 d# g  I  d  #./configure : q7 ?$ n1 ?1 W4 g. ?( }
  #make
5 d# p( h% s# ^) d5 E4 r  #make install. w- T4 P; X0 P8 v9 r4 ^- M
  2)如果是Makefile文件,就执行:
: o4 Z# K! @$ _  #make
' {* P: R8 l. b1 W1 B  #make install& T' t) K- h) }4 a
  3)如果是Imake文件,就执行:
/ L( j# a+ O' o  #xmkmf) I/ F% k, X. Q% [$ g) e  F4 g
  #make
1 m7 o4 T0 B1 m  G6 T: X; S  #make install8 j, ~+ A% F, v" G! x9 ?- b( k* z
  3.如果没有出现什么错误提示的话,就搞定了。至于软件安装到什么地方,通常会在安装时出现。否则就只能查阅一下README,或者问问我,:-)
9 o- P, q! A4 u- w  如果遇到错误提示,也别急,通常是十分简单的问题:
( O6 \  ~* ?4 S# D6 ?+ w) m4 b. a  1)没有安装C或C++编译器;2 R6 |5 C/ j7 u: W1 E0 w
  确诊方法:执行命令gcc(C++则为g++),提示找不到这个命令。
& n$ |! k% g4 l) k4 J  解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:
4 S5 x, \' d/ b# G  #rpm -ivh gcc* (哈哈,我们用到了第二种安装方式)- h, W7 m1 `9 c4 I
  2)没有安装make工具;4 M: ?7 A- q) G" q/ G2 M& a
  确诊方法:执行命令make,提示找不到这个命令。
6 y* X$ m0 x2 ^0 p  解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:
' F! U1 u9 ]8 d3 _( b  #rpm -ivh make*" d+ G2 F9 @5 B# _
  3)没有安装autoconf工具;
+ x9 x& Q# _; Y  确诊方法:执行命令make,提示找不到这个命令。
6 ?& J6 o! \( o' t  解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:# X0 P# E7 D8 _' e& m
  #rpm -ivh autoconf*
7 p1 H* t4 Z0 Z  4)缺少某些链接库;
1 K, _8 x4 z, m- C  确诊方法:在make时,提示需要某些文件。
% G7 P. M: ^3 x) {$ Z; r& D) m6 e  解决方法:安装包含这个文件的包,这就需要积累了。
. F) k* S5 n9 F, @( M第二部分:搞定.rpm+ H0 S0 L9 @1 i* B
  RPM是Red Hat公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。
4 \7 }. l( M. ]) I( j& F( K  1.安装软件:执行rpm -ivh rpm包名,如:2 R5 j0 Z4 i' ^% J- H8 D
  #rpm -ivh apache-1.3.6.i386.rpm
% v1 X: M5 \/ q& W  2.升级软件:执行rpm -Uvh rpm包名。
3 b, e. G  R$ Z' r$ k1 @ 
6 i( ]' I* k/ d0 n  3.反安装:执行rpm -e rpm包名。
, J% v3 g6 o5 X% e  4.查询软件包的详细信息:执行rpm -qpi rpm包名  X4 m: E7 o0 w1 e  n
  5.查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名$ v/ C: M3 S3 B7 c0 h
  6.查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名
9 d# w7 h) F. _3 c( _. P; S2 Y( P& z$ o7 J! s1 L
" h9 R: e) r3 \) _6 u
5 z9 \! u/ s5 H6 r
[遗留问题:redhat linux系统上有Redhat Linux Packet Manager,就是Redhat的包管理器,所以如果原来机器没装gcc编译器,装二进制码格式的编译器时,就可以直接下载相适应的rpm包来搞定。可是其它变种的linux系统怎么办呢? 有相应格式的二进制编译器软件还是说也可以使用redhat的rpm?]/ H8 v+ _# @/ R2 s( C, ^8 M! s
---ANSWER:其他的发行版也有相应的包管理器,比如debian的包管理器叫dpkg,gentoo的好像可以merge等等。
, C  \* _: w1 e' p 下面,先再来一篇关于安装可执行程序的文章,说明一下,我用的机器装的是redhat9.0 strike版,所以我就在学校的ftp上下载了相应版本的is0光盘影响文件(3张盘),用虚拟光驱虚拟出三张盘来,便于后面找依赖的rpm格式的其它包的便利。基本上,我装的过程和他的一样,只是不它还多装了个binutils.+ F' j" @7 V5 M  x, K5 q
--------------------------begin) c. Y. W  {+ b% q+ e0 M  B3 Q
在quick linux中安装gcc的详细步骤  
) `# Z( T' K/ z' r& I/ u2 E[ 作者:masenger    转贴自:来源不明    点击数:493    文章录入:admin ]
3 b) `3 l  E" f0 k7 k; K" h( F在quick linux中安装gcc的详细步骤; P% V1 j6 o0 c" K4 h, g
                               --- masenger .2004-2005
( X* p( Z3 d6 p( M; o  需要的东东有 :
# Y# Y  }) s' f" I: k5 z6 x    glibc-devel-2.3.2-11.9.i386.rpm$ B% \, m9 V; Q
    glibc-kernheaders-2.4-8.10.i386.rpm. A6 p! G6 m8 F) X& b2 u
    gcc-3.2.2-5.i386.rpm
. f  N1 T* H1 ^6 B" I* k3 T, B! l. x    cpp-3.2.2-5.i386.rpm4 M% u! ]3 O% c, ~

+ ^( ?7 T. V8 Q5 a 我手中有三张光盘(red hat linux 9.0)0 e, ^& Y$ O2 O' c2 Y; B% W
我要安装gcc编译器,在三张光盘中搜。 如果你没有这三张光盘,你可以到我的网站上去下载.
/ F3 C) R. K" J3 b 也可以到internet上去搜索下载.
# {3 ~6 p9 d2 G0 U* e6 D, r3 J% }% u 9 s7 H2 f7 `4 `5 Q6 ]7 u
在第二张光盘上发现:gcc-3.2.2-5.i386.rpm( W% ^# i) X1 X
现在将它从ftp传到我的linux中,拷贝到/root/install目录- B9 B2 \4 r; g: Q  F6 U7 Z
[root@masenger root]# cd install+ o4 f7 @8 F1 V0 L5 x3 q
[root@masenger install]# ls: v  J+ g% `# y
gcc-3.2.2-5.i386.rpm  telnet-server-0.17-25.i386.rpm6 \( P1 S' g; G  Z  k
安装gcc :& d: I2 ~; k4 }
[root@masenger install]# rpm -ivh gcc-3.2.2-5.i386.rpm  q" t  p+ B! u4 v6 }! b0 g
warning: gcc-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
7 u2 C8 C& U& zerror: Failed dependencies:
% c9 T; U. ]9 V5 j$ U  M# R        cpp = 3.2.2-5 is needed by gcc-3.2.2-5, x' D0 ^; ]+ O, V2 l
        glibc-devel >= 2.2.90-12 is needed by gcc-3.2.2-5
4 V3 b9 D. {2 g( m( R0 i 由此看见需要glibc-devel至少2.2.90版本. 在光盘上搜索后找到它.0 r3 a& X' [. ~7 q
把它从ftp传到我的linux中,拷贝到/root/install目录2 k) I! Y3 O/ k$ j4 N: Y/ t
[root@masenger install]# ls
( ~+ X0 W* q6 Q5 L" ~- P( lgcc-3.2.2-5.i386.rpm  glibc-devel-2.3.2-11.9.i386.rpm  telnet-server-0.17-25.i386.rpm
/ V6 I4 w" H2 W/ y6 Z安装glibc-devel :- e& l3 Q1 j+ m* x
[root@masenger install]# rpm -ivh glibc-devel-2.3.2-11.9.i386.rpm* Z" H. P% S5 b" R8 v$ M+ |' y
warning: glibc-devel-2.3.2-11.9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e7 c; E* h. ^8 K" s* c0 j  g
error: Failed dependencies:
, G: F+ c0 l8 U! b0 H        kernel-headers is needed by glibc-devel-2.3.2-11.98 y6 G9 n/ h0 X' r
        kernel-headers >= 2.2.1 is needed by glibc-devel-2.3.2-11.9% _9 |  ^- R! W7 }' q: T
由此看见需要kernel-headers至少2.2.1版本. 在光盘上搜索后找到它./ j( X/ {$ q  X( C+ A
但是你发现没有叫kernel-headers .但是有一个glibc-kernheaders-2.4-8.10.i386.rpm
# i5 ~2 B  v9 @( s0 } 把它从ftp传到我的linux中,拷贝到/root/install目录
( `4 t6 K: L8 D* N3 h- M, H[root@masenger install]# ls
- x! r9 v4 K) k2 i; pgcc-3.2.2-5.i386.rpm             glibc-kernheaders-2.4-8.10.i386.rpm
2 G9 F9 @9 u6 i1 Jglibc-devel-2.3.2-11.9.i386.rpm  telnet-server-0.17-25.i386.rpm
+ n% ^, V1 o* h+ g7 E+ c1 \ 安装kernel-headers :! m& R$ x! Q# |3 ]0 X6 V+ Y% _
[root@masenger install]# rpm -ivh glibc-kernheaders-2.4-8.10.i386.rpm
3 _) U+ Z: @2 D/ p4 x/ [warning: glibc-kernheaders-2.4-8.10.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
# Y' K$ N5 c  `) q# [  s5 YPreparing...                ########################################### [100%]: \% E+ g' Z: @# d: {2 a) h7 K
   1:glibc-kernheaders      ########################################### [100%]$ \0 F/ V' B" t" z; ]) o
安装glibc-devel :& @- W1 u) c# x) G$ \8 q# N6 V
[root@masenger install]# rpm -ivh glibc-devel-2.3.2-11.9.i386.rpm
# P4 d  J7 `6 N; @/ Q3 k" u( C( [7 ywarning: glibc-devel-2.3.2-11.9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e( w) G* J6 t- f* _- h- B
Preparing...                ########################################### [100%]
! F3 L' n; T- w: D8 i   1:glibc-devel            ########################################### [100%]0 ?; a5 h7 l  P& B- w* f: [
安装gcc :0 x, I  r' W& [) Q) [' n( C" y
[root@masenger install]# rpm -ivh gcc-3.2.2-5.i386.rpm% [- K6 O% H) U8 o+ O$ c; W1 d
warning: gcc-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
* b* r! M6 M8 @7 Xerror: Failed dependencies:
$ ?4 N, R; T% g9 U$ I8 h        cpp = 3.2.2-5 is needed by gcc-3.2.2-54 L% }; N. J8 z
又提示你需要cpp至少3.2.2-5版本.在光盘上搜索后找到它.
$ u: R1 D7 b0 s  Q  j7 a% \ 把它从ftp传到我的linux中,拷贝到/root/install目录
. _2 W3 A, r. `+ @. o+ E 安装cpp:
8 F% e, T) @" ]8 M4 R+ P0 [[root@masenger install]# rpm -ivh cpp-3.2.2-5.i386.rpm
" y* d  R! p/ ~. Y, ~3 Kwarning: cpp-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
7 g% T' Z. ^& [Preparing...                ########################################### [100%]
' b" i) `# }. K- h4 }7 k0 T( J   1:cpp                    ########################################### [100%]6 w4 Z" e( x  r, z: X  s+ W" R6 o

$ a; T: a# S2 i+ h$ ~6 \ 安装gcc :* w) c" r& u7 {6 q( }7 F( U# L6 I/ L
[root@masenger install]# rpm -ivh gcc-3.2.2-5.i386.rpm
3 B( Q3 O" X: H/ d# \2 D& L( twarning: gcc-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
$ I; [; i" \9 E: J3 n1 dPreparing...                ########################################### [100%]) J& p- R2 ]( r7 j; F, F( a5 P
   1:gcc                    ########################################### [100%]
0 z6 y. }& J/ J9 X% ~) d到此为止,gcc就装好了; F; G, l( q6 l) R, k" M
( e; Q+ V1 x2 }3 S3 P5 ^
---------------end
" }& H! a+ u5 p& U
8 x; R( @, q0 \没试过装源代码形式的就是不爽,所以按就一气呵成,再try一下装源代码格式的gcc编译器。我下载了3.4.1版本的gcc(gcc-3.4.1.tar.gz)。基本上按照下面这篇文章搞定的,虽然gnu网站上以及gcc解压后文件目录里面的INSTALL目录里面的介绍很全,但是仍觉得洋码不如咱中文看得舒服,哈哈, 。
  s# h* g% Q; C2 R-----------------begin; C+ S2 l" `% ~$ N  L7 S
2004年4月20日最新版本的GCC编译器3.4.0发布了。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。GCC 3.4.0比以前版本更好地支持了C++标准。本文以在Redhat Linux上安装GCC3.4.0为例,介绍了GCC的安装过程。
& b: B, D+ w" g5 S# H) k
" G5 q+ E( u: d5 l* }3 {. k6 p  h7 ]# R: d! r4 S7 n
  安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.4.0。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。
' Y# ^9 ], ?' x" d$ Y* A$ M/ |% k# \: G4 I; q0 B

/ v8 j' N# @# `) x% J  系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.4.0,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。
, ]' U, Z/ k1 o$ G! D8 g3 e7 E# A7 l+ ?" K

! g7 j8 l- s8 x2 L  按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。
# J7 h6 \9 `7 F. M, I
( R8 b; j$ i4 |# q8 [7 C6 C/ }; z2 q) I- {8 l4 d% z6 C
  1. 下载$ I/ G. z5 A1 k7 h

6 N$ d% [( ^' d9 E$ U# M/ r3 x
9 H7 E1 N" s& v  y! a  在GCC网站上()或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为 3.4.0。可供下载的文件一般有两种形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。
: n: K6 w8 k2 i
; \! N* r1 r" T! s1 b) x
+ v0 T6 t& ?$ _2 K4 X+ R4 A% C  2. 解压缩/ z" x& O9 V) h5 Z' `
8 U# r2 v# V2 y/ V

, Q* G, J* j3 g  根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):3 ?# ^4 |, C1 f3 E( O

# {% \' \) X: Y4 A- x$ f
& E' m& v" y" \' f- k  % tar xzvf gcc-3.4.0.tar.gz 5 T$ p  h: ~' y4 s9 t
  或者
; a1 Y* X( H% v- M0 T( n0 y4 ?( a  % bzcat gcc-3.4.0.tar.bz2 | tar xvf -" Q+ M" ]- ~+ m* M% [6 `! Y3 U
4 H! n) O( u, A  ]0 j8 W
, g7 D& e3 ?6 W1 D0 l
  新生成的gcc-3.4.0这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。
; Y" I: h+ T/ |, Z$ h
4 [4 i. y- j" M8 O5 B$ `" `( J; c' H3 g& r9 J7 z
  在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。
6 M. R2 ]( T+ q. h* Q% ?, d6 i* X5 q: J0 |# r
" A9 ^7 p3 ~4 a/ ~6 R/ t; E' @& U
3. 建立目标目录3 H) Q! w- }/ w

* R- \" N2 q( @3 `9 E  目标目录(用${objdir}表示)是用来存放编译结果的地方。GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。1 p2 n2 f$ x/ A1 n
4 D! m9 f+ |9 Y9 p6 S& K" Z6 y

3 k" d: z) A; }: U" W  例如,可以这样建立一个叫 gcc-build 的目标目录(与源目录${srcdir}是同级目录):
, M' Q4 N1 H8 k9 O6 ^
  A3 m3 M, U( X" T! W) ^3 Q2 P: v
+ ~$ g/ J- n! `* @7 L  % mkdir gcc-build ( w8 L& j' b7 Q9 a$ b
  % cd gcc-build. j6 [" [* G% I1 v+ z4 ~4 ?
6 c* a9 H/ P* B

3 |0 e. g" e: |! n3 d' W1 ]) l9 J  以下的操作主要是在目标目录 ${objdir} 下进行。
9 Y$ W8 c/ m0 k! K5 o( i4 z
4 }) v+ d% E4 ]% |* f8 k8 }0 h% j* q% y( B1 u
  4. 配置8 L( F" H( w, s" n% A; F

5 F, _; d  |  `% o  配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。其中,${destdir}不能与${objdir}或${srcdir}目录相同。
* W4 x9 N9 b  t4 s8 o# |6 ]7 v+ [+ L! Y, I. r! q9 B: ^& ~/ r
! n/ t9 I5 m# h* h6 b: O
  配置是通过执行${srcdir}下的configure来完成的。其命令格式为(记得用你的真实路径替换${destdir}):
1 V* X  r7 F- O1 G% t: E0 e) v5 E6 G2 f$ F+ j

2 X( M+ A: ?; g* P2 f/ Y  % ${srcdir}/configure --prefix=${destdir} [其它选项]% C( r* W$ Z# d( m
/ H$ p6 L6 v5 w' r

5 D. t7 K4 {; ?  例如,如果想将GCC 3.4.0安装到/usr/local/gcc-3.4.0目录下,则${destdir}就表示这个路径。
% l+ y2 n* ?! G7 J9 i
% P- y, ]0 p+ L+ h6 G# R! z3 Q
. L/ Z% D$ f: X1 i+ ~( l$ k  在我的机器上,我是这样配置的:
& `" d' f* f5 d/ q2 G6 R3 n+ B* x
+ b( D3 j* H5 [6 L
' i/ Y0 j! g2 X. T  % ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java4 x+ H, \1 S+ `4 O

. ?1 v4 E5 p$ i; F* E& u* X
1 i4 f: r" ~* N2 Y  l; ]5 p  将GCC安装在/usr/local/gcc-3.4.0目录下,支持C/C++和JAVA语言,其它选项参见GCC提供的帮助说明。
/ k8 i/ Y2 T% e- U- |% O! H" O3 x0 U( y4 }6 Q& w0 E! [+ r) f+ Q* p* H
0 n2 T+ G' p9 f4 ~3 }
  5. 编译
; K, i) A7 j4 j/ _+ y& v6 a/ s% [5 I
' i* R. j$ x% B9 n* R) u
  % make) C+ e7 P' i9 Q& f+ z

; \  g2 @# c# e6 F5 b1 x/ _* @  T0 ?5 P+ g' f
  这是一个漫长的过程。在我的机器上(P4-1.6),这个过程用了50多分钟。
! k( l* Q) Z: [) h# H1 n* R% D1 G2 ^1 Y0 s6 k& W

0 U9 \1 Z9 O$ A# A  6. 安装
8 \7 _# d4 `  X2 B( j4 p3 S
6 z4 f4 V0 t* j6 u, T# [) z8 C2 _) G& [& W3 B( I( b
  执行下面的命令将编译好的库文件等拷贝到${destdir}目录中(根据你设定的路径,可能需要管理员的权限):2 L3 M+ r3 e' x2 R, q- d
% x; K9 F- Q; G* Q: J" r6 I+ X  a/ f
) Q5 X+ k# W1 R" \
  % make install
1 v# H$ @; J8 |" p$ a. P+ |/ K& y2 S3 I6 s" G

$ R2 y- {% \* L% \. z. g2 W  至此,GCC 3.4.0安装过程就完成了。3 C3 N" d# l2 q6 W0 Q$ P

# y3 @0 D* a1 J
" E9 S8 c7 T( \2 X  6. 其它设置+ d) B1 ~3 L! T0 \

% m7 o, q# s7 b$ o! g& E+ F- E6 f) G4 N3 V
  GCC 3.4.0的所有文件,包括命令文件(如gcc、g++)、库文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、库文件在lib下、头文件在include下等。由于命令文件和库文件所在的目录还没有包含在相应的搜索路径内,所以必须要作适当的设置之后编译器才能顺利地找到并使用它们。
' n* A$ j! e: j
& `, V8 Y( z, K9 f1 N7 a3 t& r# p9 s) V$ ^
6.1 gcc、g++、gcj的设置
! G4 L: v- E' F2 p7 t1 W
: v! d. N7 F0 F% D# u9 Z$ n  q0 m: S1 _7 T5 n" K% m
  要想使用GCC 3.4.0的gcc等命令,简单的方法就是把它的路径${destdir}/bin放在环境变量PATH中。我不用这种方式,而是用符号连接的方式实现,这样做的好处是我仍然可以使用系统上原来的旧版本的GCC编译器。0 h+ L0 O7 l- U) t5 S% D9 l$ l0 R

3 T( [" [! G+ e5 D1 j* V6 Q* P7 A4 V. V; z
  首先,查看原来的gcc所在的路径:6 L. d% ]6 ]& O2 r

& q/ }/ J6 z5 f' N( i
: v/ l. d' B( ]- o  % which gcc
8 B6 j$ H( X5 R
1 |4 b* ~' B. z$ ^$ w3 }5 d# B  Y' V) c2 d# P, \4 X
  在我的系统上,上述命令显示:/usr/bin/gcc。因此,原来的gcc命令在/usr/bin目录下。我们可以把GCC 3.4.0中的gcc、g++、gcj等命令在/usr/bin目录下分别做一个符号连接:
0 P0 J( t1 M9 V2 [, s; L
/ e" I6 @# S1 ?) M+ u" U1 s* r) t9 r# N
  % cd /usr/bin 5 y. W( B6 N. z1 f0 n/ i& e' f* v
  % ln -s ${destdir}/bin/gcc gcc34 . c- D3 `' z0 d3 z& k" ]# X1 V
  % ln -s ${destdir}/bin/g++ g++34
# W$ C  C+ J' N/ M3 p3 G5 R! Y  % ln -s ${destdir}/bin/gcj gcj34# S: P3 ?4 ?# @- G& j# ~( [- }" Y, Q

3 i5 w% J1 V  H3 G3 K6 g) d$ B3 Y' b' J6 E
  这样,就可以分别使用gcc34、g++34、gcj34来调用GCC 3.4.0的gcc、g++、gcj完成对C、C++、JAVA程序的编译了。同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。
+ k. Q5 ^' N6 o1 b
# f: k0 W  _. X  I0 ], V$ L* q2 ^' }1 z' F
  6.2 库路径的设置
' T( g: ~5 `$ R
9 Q% w1 ~: `( y3 Y4 P2 `5 Y9 V
' [. A8 @$ T) p& O1 _1 u+ ~$ F/ `' Y  将${destdir}/lib路径添加到环境变量LD_LIBRARY_PATH中,最好添加到系统的配置文件中,这样就不必要每次都设置这个环境变量了。
7 @( ~2 L* v0 E  G: J- a  b$ a4 V* h" M( S. }0 t" [

! A2 P( z5 W7 q- _" p2 [6 w  例如,如果GCC 3.4.0安装在/usr/local/gcc-3.4.0目录下,在RH Linux下可以直接在命令行上执行或者在文件/etc/profile中添加下面一句:
6 X2 T$ W3 s) b" @% z( x0 ~3 M  B3 J& K+ L, B5 _; e) u

- z5 b& V/ K3 a8 z  setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.0/lib: $LD_LIBRARY_PATH
3 E1 F8 V  [0 s# C8 s/ H
, `6 s' D5 u( r, K, d; G. |+ E5 n3 q0 I) x* I, U
  7. 测试
5 [" p3 {5 K; f0 c: b/ |" m: [
; D& J, G) u! `3 U0 E  用新的编译命令(gcc34、g++34等)编译你以前的C、C++程序,检验新安装的GCC编译器是否能正常工作。7 ^& n9 K/ s9 {) }& j

: R! J1 W1 R. w9 h% Z
9 {5 e0 i3 a% w3 x$ i* K" h  8. 根据需要,可以删除或者保留${srcdir}和${objdir}目录。
& H6 H9 t) n" `
2 t, I, v* c1 h' `- `, m% p& k: v$ w) m
  后记:/ U" l7 E8 O* X+ ~0 k' d- r9 {5 m

7 o  Y! n. O3 g  F
: w9 y. k& B+ n/ z! \' A/ D/ h  前两天刚安装好了GCC 3.4.0,把安装规划、安装过程、一些注意事项记录下来就形成了这篇文章。希望对大家、特别是还没有安装过GCC的朋友在安装GCC的时候有所帮助6 Y, P+ f& X7 L8 j9 N  ^

: o" H- U' \! j  m

该用户从未签到

2#
发表于 2021-3-9 17:43 | 只看该作者
redhat linux上安装 gcc编译器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 17:03 , Processed in 0.187500 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表