|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种:
" ?* S+ S9 d$ F+ f* ^ 1)一种是软件的源代码,您需要自己动手编译它。这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz)。
6 x# T( A/ r# E; u" ^ 2)另一种是软件的可执行程序,你只要安装它就可以了。这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。
& w2 ^6 K0 F) {6 S) `: Z 当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包。只要您理解了以下的思路,这两种形式的安装包也不在话下了。
; H7 D4 q4 C) W+ U' h7 `* g7 v+ T 下面,我们就分成两个部分来说明软件安装思路:
0 l5 q( x* K# u! C( V第一部分:搞定.tar.gz/ Q9 g# [4 |+ ]( G2 y0 ~ L3 b
1.首先,使用tar -xzvf来解开这个包,如:$ W- @# i+ P. v* U- `3 R
#tar -xzvf apache_1_3_6_tar.gz
6 U7 _5 \8 f7 K 这样就会在当前目录中创建了一个新目录(目录名与.tat.gz包的文件名类似),用来存放解压了的内容。如本例中就是apache_1.3.6% ?5 Y C1 W7 k# m3 [' I
2.进入这个目录,再用ls命令查看一下所包含的文件,如:
- g- T4 J, {7 [- q6 r) z6 q4 \ #cd apache_1.3.6
2 w, @5 h& z( ?! r& f) ~ #ls
" n. A( U; d+ @) _; o, [ 你观察一下这个目录中包含了以下哪一个文件:configure、Makefile还是Imake。1 `9 o) y: ~/ J1 F I6 ^& ]
1)如果是configure文件,就执行:
4 P4 r9 K1 p; h8 A3 u7 b8 C #./configure
3 k) t& D$ I+ I3 N+ V9 d* k #make+ U% Q6 h& Q" X. i
#make install
% r7 |, D1 Z6 K- N3 G$ j Y 2)如果是Makefile文件,就执行:
* d& |; \( U) e: L" S #make
/ L; w) r+ L6 {* Y% u #make install/ n' b! N, h% u9 b5 V0 l
3)如果是Imake文件,就执行:. O; e5 Y' P' v* C7 D
#xmkmf1 P7 N8 m. u0 }0 `7 F
#make& M5 D& W) A5 Y. C7 B
#make install6 z# B! A) c1 w& T: h
3.如果没有出现什么错误提示的话,就搞定了。至于软件安装到什么地方,通常会在安装时出现。否则就只能查阅一下README,或者问问我,:-)
2 x( K. D3 X. I9 l! z: q: s5 E3 C 如果遇到错误提示,也别急,通常是十分简单的问题:
# J& V9 O6 ]4 I" m+ x 1)没有安装C或C++编译器;- o" b2 i/ ^. z( V: m
确诊方法:执行命令gcc(C++则为g++),提示找不到这个命令。2 Y# c4 Z' g4 q7 [6 k- b5 X
解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:
9 S5 h) b* a/ o1 p" l+ D3 Q #rpm -ivh gcc* (哈哈,我们用到了第二种安装方式)8 `2 m+ D, v- F
2)没有安装make工具;, T: G% [( m4 m5 q9 F$ ~
确诊方法:执行命令make,提示找不到这个命令。+ l u7 G0 F; P$ l
解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:0 l [; a' ^& ^. z
#rpm -ivh make*% J. ]7 Y. J, O6 o* q8 E1 I
3)没有安装autoconf工具;, C. m ~# m* T2 S9 N9 J
确诊方法:执行命令make,提示找不到这个命令。
* X; P u1 P& b6 {0 t 解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:" q0 e$ N; {1 l& o. E
#rpm -ivh autoconf*
. W' A# m$ e+ d! H" ] 4)缺少某些链接库;
9 e# S C7 h6 i4 V# U$ Q 确诊方法:在make时,提示需要某些文件。( M& O' s9 Q+ j$ \# U* n
解决方法:安装包含这个文件的包,这就需要积累了。
/ C2 O3 e( x% k8 C) z第二部分:搞定.rpm
: h/ Z G1 c4 ^* d' k, t1 q RPM是Red Hat公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。5 T* K! G# V& k3 \/ ?
1.安装软件:执行rpm -ivh rpm包名,如:
' j7 r# Z* D( e6 @0 c4 v0 ] #rpm -ivh apache-1.3.6.i386.rpm
A3 ^$ |6 t- n 2.升级软件:执行rpm -Uvh rpm包名。
- h. C' u/ j6 ~6 E , Y0 d- X- N# e* u9 L8 ~" n
3.反安装:执行rpm -e rpm包名。' `9 j1 z, B v" H; W/ `
4.查询软件包的详细信息:执行rpm -qpi rpm包名
! K/ j6 r* C& a7 r0 Y( A' q; R 5.查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名" x: v5 k- M3 k" g4 v8 @$ b9 E8 @
6.查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名
; `2 | E: B# n) p: j8 d* n2 h
, e0 @ G, m( b9 Z* }7 Z+ T; f9 Q) {" i( @
[遗留问题:redhat linux系统上有Redhat Linux Packet Manager,就是Redhat的包管理器,所以如果原来机器没装gcc编译器,装二进制码格式的编译器时,就可以直接下载相适应的rpm包来搞定。可是其它变种的linux系统怎么办呢? 有相应格式的二进制编译器软件还是说也可以使用redhat的rpm?]
0 X8 n7 V& B) \6 n0 A---ANSWER:其他的发行版也有相应的包管理器,比如debian的包管理器叫dpkg,gentoo的好像可以merge等等。
% y- V& j: @# I+ W, g' K& V$ L 下面,先再来一篇关于安装可执行程序的文章,说明一下,我用的机器装的是redhat9.0 strike版,所以我就在学校的ftp上下载了相应版本的is0光盘影响文件(3张盘),用虚拟光驱虚拟出三张盘来,便于后面找依赖的rpm格式的其它包的便利。基本上,我装的过程和他的一样,只是不它还多装了个binutils.
" d% S2 h: X1 {: v# G0 I, ]8 U--------------------------begin. i6 \0 x$ s, ~, y% `, }4 J
在quick linux中安装gcc的详细步骤
, E8 S3 o5 G: H2 ~/ }) D[ 作者:masenger 转贴自:来源不明 点击数:493 文章录入:admin ]
! _2 E$ P6 R- W9 E* g" i7 s( r在quick linux中安装gcc的详细步骤
6 j& v$ ?' V( O" V --- masenger .2004-2005; S& t; A/ x4 p6 u y
需要的东东有 : 8 z) E" O' e" {7 b9 e
glibc-devel-2.3.2-11.9.i386.rpm
2 p7 e+ ^* `( Y7 r% k glibc-kernheaders-2.4-8.10.i386.rpm
: \! z3 v; `* d3 Y2 c& E% g- n gcc-3.2.2-5.i386.rpm
3 m- I* ?$ V$ K2 q1 w cpp-3.2.2-5.i386.rpm% Q5 y8 R$ x& p, B0 V3 {4 u
+ s7 V0 Y7 D2 L$ w9 T
我手中有三张光盘(red hat linux 9.0)# @. i' f3 p( d f
我要安装gcc编译器,在三张光盘中搜。 如果你没有这三张光盘,你可以到我的网站上去下载.7 ^- U/ O3 }% r: @2 a
也可以到internet上去搜索下载.. b+ U6 n( o" ?' E! \+ K
# q8 U7 o+ R' _; o 在第二张光盘上发现:gcc-3.2.2-5.i386.rpm# u- V. ?/ z, s# p. u3 w4 P( o' }. |
现在将它从ftp传到我的linux中,拷贝到/root/install目录
' r4 B" J( W1 C+ f* h- w[root@masenger root]# cd install
: v. Y% v5 H' d- c2 x2 s[root@masenger install]# ls# w# Y) z V) M8 T
gcc-3.2.2-5.i386.rpm telnet-server-0.17-25.i386.rpm. n. S x1 S+ U @- x$ n
安装gcc :
( r" _) g+ U6 j9 p$ g[root@masenger install]# rpm -ivh gcc-3.2.2-5.i386.rpm. S5 ?% D+ Y# B" n$ Y3 |: y
warning: gcc-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e7 h& k( o2 }; d( W
error: Failed dependencies:
: J: S3 s2 T$ ` y3 n. q cpp = 3.2.2-5 is needed by gcc-3.2.2-5' G$ j% g% x: M$ K
glibc-devel >= 2.2.90-12 is needed by gcc-3.2.2-56 I0 ^' c$ s8 R
由此看见需要glibc-devel至少2.2.90版本. 在光盘上搜索后找到它.& y, V# F1 x1 ?! B3 s' [
把它从ftp传到我的linux中,拷贝到/root/install目录# M1 ]0 i$ `; v& O0 e ^, J
[root@masenger install]# ls! u8 G q% o' I* e# _9 z
gcc-3.2.2-5.i386.rpm glibc-devel-2.3.2-11.9.i386.rpm telnet-server-0.17-25.i386.rpm8 Q+ W$ k3 d, K' V n. |& H
安装glibc-devel :
7 A# `' @2 ^4 [2 }9 L5 \+ Y3 _[root@masenger install]# rpm -ivh glibc-devel-2.3.2-11.9.i386.rpm
; G$ K( j% e: ^: i( _; r7 awarning: glibc-devel-2.3.2-11.9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
+ `' O3 w8 r I f5 B4 Jerror: Failed dependencies:
+ ]2 p( c3 }9 U4 o0 b V kernel-headers is needed by glibc-devel-2.3.2-11.9, C6 s8 V1 w# u( Z/ A5 _
kernel-headers >= 2.2.1 is needed by glibc-devel-2.3.2-11.9. M* w/ K7 ^; {4 i$ Q, P8 ~
由此看见需要kernel-headers至少2.2.1版本. 在光盘上搜索后找到它.
) Q! M# ^) j0 K$ z 但是你发现没有叫kernel-headers .但是有一个glibc-kernheaders-2.4-8.10.i386.rpm, c7 t: P7 `( f/ Q; U, B: l0 W5 x, ^
把它从ftp传到我的linux中,拷贝到/root/install目录
, ~1 B5 B# D; ^5 B[root@masenger install]# ls+ B6 [5 f7 O+ B; r6 x" R3 ]) @
gcc-3.2.2-5.i386.rpm glibc-kernheaders-2.4-8.10.i386.rpm
0 z9 u& _" l& b7 }" m! dglibc-devel-2.3.2-11.9.i386.rpm telnet-server-0.17-25.i386.rpm$ @. I2 e. \2 H+ f
安装kernel-headers :, s, q% O/ Q2 p6 H a* ?
[root@masenger install]# rpm -ivh glibc-kernheaders-2.4-8.10.i386.rpm
; L, u6 h7 l" zwarning: glibc-kernheaders-2.4-8.10.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e, n9 b8 K' X \4 b; c1 U
Preparing... ########################################### [100%]8 u6 [& F! Y, C
1:glibc-kernheaders ########################################### [100%]
; z% X% R4 Q- n% n 安装glibc-devel :
8 T: f' O7 g5 M( v! c- ^9 m! j, b[root@masenger install]# rpm -ivh glibc-devel-2.3.2-11.9.i386.rpm
, M( i0 l7 m* X. _* y, bwarning: glibc-devel-2.3.2-11.9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
( }1 q: p* v; M0 q* uPreparing... ########################################### [100%]/ @ o$ r1 Y9 |. \, f! Y
1:glibc-devel ########################################### [100%]1 t* s9 P' x4 K
安装gcc :9 m% h1 T e2 f( q
[root@masenger install]# rpm -ivh gcc-3.2.2-5.i386.rpm
S; N, s8 i0 ^8 Z& T, Y( Cwarning: gcc-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
, R$ z8 @7 A) A" c: Yerror: Failed dependencies:
2 l% A; s, ?2 L* o" r1 s# k cpp = 3.2.2-5 is needed by gcc-3.2.2-5' j8 d6 p3 h5 b' H. H O: y
又提示你需要cpp至少3.2.2-5版本.在光盘上搜索后找到它.
5 P5 t3 P( p" Q% i4 g; Q- W+ \- [ 把它从ftp传到我的linux中,拷贝到/root/install目录
4 q* O$ ?* y( q" ~" _; @ 安装cpp:
+ ~* a5 e/ t4 K[root@masenger install]# rpm -ivh cpp-3.2.2-5.i386.rpm
+ i3 _: Y8 P6 E& D+ e; A# Twarning: cpp-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e y! O; S6 z1 M
Preparing... ########################################### [100%]* ]$ `* t; G. \( F
1:cpp ########################################### [100%]3 C; }' c" f p. E# x8 Y+ K
; ]6 G% @/ b/ z. C8 N2 O 安装gcc :' F2 ^9 G. n; H! p
[root@masenger install]# rpm -ivh gcc-3.2.2-5.i386.rpm
8 c; {9 H0 T8 ~, h' Cwarning: gcc-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e& Q+ o7 o$ s# @0 _' l! ]
Preparing... ########################################### [100%]4 u+ v0 `# i( l, { L
1:gcc ########################################### [100%]! e8 {- O6 p- k6 c K
到此为止,gcc就装好了
4 T5 i# L& G3 J, D% R 1 b& n& N5 S* P- w9 D
---------------end V8 K: v5 r& U
! \ ^/ _+ H8 b q: e: p没试过装源代码形式的就是不爽,所以按就一气呵成,再try一下装源代码格式的gcc编译器。我下载了3.4.1版本的gcc(gcc-3.4.1.tar.gz)。基本上按照下面这篇文章搞定的,虽然gnu网站上以及gcc解压后文件目录里面的INSTALL目录里面的介绍很全,但是仍觉得洋码不如咱中文看得舒服,哈哈, 。+ t% _9 \. a& C. M2 h; A( m
-----------------begin
) ?& ]$ E* H2 [9 f1 N& V2004年4月20日最新版本的GCC编译器3.4.0发布了。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。GCC 3.4.0比以前版本更好地支持了C++标准。本文以在Redhat Linux上安装GCC3.4.0为例,介绍了GCC的安装过程。) _/ z, S# d) t+ w) H; Z' s) y
7 Y3 w- l Y5 B* I0 H+ a) ~( a3 t( e2 }, L
安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.4.0。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。
: p3 e$ b* l- u- c2 T6 I1 d6 R
( N% m/ C6 ]' O4 ^; P) y2 U8 N* |; ~) o
系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.4.0,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。
7 s. R: e* }' h7 n8 Q
! \4 k, R; N4 B0 e% R8 z0 U# r8 F
# M; N* L9 ^$ m+ A! X; \ 按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。# k3 W1 M: y: ~0 [: e! r5 G$ u
5 a* r! S+ ~% ~
2 Y; U! O+ r2 } 1. 下载& n7 ~/ a# m' I9 ~
% v4 m# {! S3 Y8 p9 H9 E6 @
; i" }5 K0 Q* T2 S1 h/ a: u5 `
在GCC网站上()或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为 3.4.0。可供下载的文件一般有两种形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。
$ W0 T9 F4 A, r3 S0 O' X$ g& b
* d$ w4 t. g3 X) x# y; o) d
; p! K& i& k5 Z% t* ~ a# B 2. 解压缩& M* Q/ L4 t! i; Z
% ~& a' V* c8 U" I
7 ^; m' l) Z5 G2 I
根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):' \+ S4 ~" n7 M4 {- ?: J4 P& @- v
. ^( B. P4 T$ p
1 I s) b! M/ ?* Y$ Y" H" G# Q % tar xzvf gcc-3.4.0.tar.gz
/ s/ M, _, P: \1 n1 M8 g 或者
3 [* F4 H- m6 I % bzcat gcc-3.4.0.tar.bz2 | tar xvf -$ Y) \# u7 o+ O# p
4 _ ]7 R% @) u& b
9 x4 n& O' d- V) c4 w 新生成的gcc-3.4.0这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。+ j; l4 ?- D) C4 `0 f% _
0 z! l6 k' N0 F1 s3 x( c9 G
* p1 o! b0 ]8 `0 W5 Z 在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。- P/ _+ Q, b1 v% L7 ~6 g) N
9 g/ @$ a+ n- c s; {0 B
4 Q7 ]" _# _9 R3. 建立目标目录3 f; j3 R% o4 B$ o$ a& D
! l1 s8 C3 a2 J; L
目标目录(用${objdir}表示)是用来存放编译结果的地方。GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。
X& H: g1 {5 C2 [
7 ]3 R8 d. W) j( }$ Q
0 ?) z" ^/ J( F+ a3 Y% b" i+ n. ?) b0 X 例如,可以这样建立一个叫 gcc-build 的目标目录(与源目录${srcdir}是同级目录):
- A: A! f2 Q" m+ ^+ f" G' E, @$ b. P, ?) v+ u& m
' V, m+ ?. k/ f% A: `7 M- m, d % mkdir gcc-build
; b; l9 w; v0 G9 Y. _& `/ a( g % cd gcc-build; o( n1 h* X8 Q9 {$ e8 ~% T2 R
! p% z7 A- O8 @: T# m) z2 C( w6 O3 e. u2 G! x$ g8 h
以下的操作主要是在目标目录 ${objdir} 下进行。
7 A+ v5 d# @, i' q, H$ a7 T' A. ^- [0 N; o- M# e& [
6 X% v6 x7 s; S l 4. 配置
" }2 l1 t2 U7 `2 }! Y / k+ b) Z" R- t4 A
配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。其中,${destdir}不能与${objdir}或${srcdir}目录相同。: B' r8 l, R2 Z+ K D6 o B6 a
6 L# e( B2 a3 c0 R9 Z! x u' D% Z
配置是通过执行${srcdir}下的configure来完成的。其命令格式为(记得用你的真实路径替换${destdir}):
7 q# ]) u8 z, z! @1 I* ]# M/ N5 g! @$ T
: \ Q; a1 l& {8 }6 n2 W
% ${srcdir}/configure --prefix=${destdir} [其它选项]
( p2 M3 w/ W4 _% C7 X2 T: F
: l7 w+ q& S* `3 h e: j( e1 ?2 B5 f# E5 {2 H
例如,如果想将GCC 3.4.0安装到/usr/local/gcc-3.4.0目录下,则${destdir}就表示这个路径。( _5 G* b0 _7 |; X' Q5 n; r
4 j L; ]9 @9 j+ p" k9 R) Y1 a; S: Z0 t# B/ y
在我的机器上,我是这样配置的:
/ i# B2 G( o3 X7 ~, O
; q7 Y$ M% g v" x" c6 s& h" B; q* Z* |; ]
% ../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++,java
( h3 _9 d0 Y0 ~/ M# ?" Q# I% p' f, V0 e3 t& Q1 f! @
0 b9 b0 F+ H6 P9 j9 I" E 将GCC安装在/usr/local/gcc-3.4.0目录下,支持C/C++和JAVA语言,其它选项参见GCC提供的帮助说明。
( u0 @9 b" P8 ^( C( P
1 Q" w# ^) Z4 R5 y/ M% y: F
# {# ^3 V3 S7 [$ x2 f+ v 5. 编译 C# x5 j/ w8 i( k7 o
: b [6 `! z/ |, m! \
2 U: j1 j- v3 b. ~* M; F- F5 ?, k4 j % make
% {2 t5 y+ h, @, @# J' h9 c4 n
% R3 H# O+ |( o2 U2 N- h5 @: [% K6 U ~3 I |1 |' |8 p
这是一个漫长的过程。在我的机器上(P4-1.6),这个过程用了50多分钟。
' e8 ?, h; k9 Z4 @3 l$ ~* F4 ?' ~
! c" t) K' Y R
6. 安装( S6 K% M! v# a
' R% ?- w0 |$ T" _+ Q2 ^) {
& w+ G( V9 I6 t+ m 执行下面的命令将编译好的库文件等拷贝到${destdir}目录中(根据你设定的路径,可能需要管理员的权限):
) A6 S* f) i ?7 S W% K2 x# ]4 `! \: {4 C
/ f$ ^8 C: |4 O- N; o$ [* J4 Z
% make install' I' I& R8 E" s6 i% a( {
8 v& u- s' `2 [; C
6 s% p6 e& b1 V; n 至此,GCC 3.4.0安装过程就完成了。7 F, |4 F. N1 k' F+ _
* \* y* l* y" K7 W' [2 T+ d
2 q8 }6 d0 H8 J8 t- x/ B* d1 B 6. 其它设置
: C- m* F Z$ g2 r$ G5 E3 B; S3 Q0 a- A) O3 j1 @/ g' ^% @
+ X$ o3 q1 M$ O m6 q4 i3 c
GCC 3.4.0的所有文件,包括命令文件(如gcc、g++)、库文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、库文件在lib下、头文件在include下等。由于命令文件和库文件所在的目录还没有包含在相应的搜索路径内,所以必须要作适当的设置之后编译器才能顺利地找到并使用它们。
- n9 K, [& m/ W' u( A. w0 h* _" d: M, ]
/ t- z! F- k6 w2 U1 Z9 \9 ~6 I3 Z9 T3 A+ ]# J
6.1 gcc、g++、gcj的设置
+ ] l" V% v( B2 i8 T) u4 b) Q2 S; {9 r- i4 Z" S; C. k
0 t" G1 N+ C$ R- c8 H
要想使用GCC 3.4.0的gcc等命令,简单的方法就是把它的路径${destdir}/bin放在环境变量PATH中。我不用这种方式,而是用符号连接的方式实现,这样做的好处是我仍然可以使用系统上原来的旧版本的GCC编译器。
0 K% y) R) W: h: e, X2 P1 v3 d9 C! P6 M% W7 H7 f1 B
! T" a. i1 g7 o0 W& d% V0 S6 M 首先,查看原来的gcc所在的路径: {8 U; i5 o; q- Y, s
* d1 Z3 m; l! M6 W; p. v0 R9 Q
7 _4 ?2 ^/ F% j4 Q % which gcc6 i+ r5 V* M- o. J& T
2 h5 H& j, W) Z7 D5 i
& b' O9 G& S( x! _8 l, G$ p: F$ P 在我的系统上,上述命令显示:/usr/bin/gcc。因此,原来的gcc命令在/usr/bin目录下。我们可以把GCC 3.4.0中的gcc、g++、gcj等命令在/usr/bin目录下分别做一个符号连接:
1 H' x! l! b( l# _" D' {4 ^6 v& c
; r2 }$ |/ d3 K, D % cd /usr/bin ( D& V6 x: j6 G! Q( z" [) z# Q& r
% ln -s ${destdir}/bin/gcc gcc34 " d+ ^6 j% X+ f) d
% ln -s ${destdir}/bin/g++ g++34
8 ~8 Z* `) [1 u8 V; r6 v, I! w0 x % ln -s ${destdir}/bin/gcj gcj34
8 p* R4 W% I- x( E
% _/ P. U2 X3 r: g! h' Z4 _+ O, T, G: N8 P
这样,就可以分别使用gcc34、g++34、gcj34来调用GCC 3.4.0的gcc、g++、gcj完成对C、C++、JAVA程序的编译了。同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。4 o% G' @; b6 b& r% {! R! \2 V( y
( z6 W) B0 J, ? S/ p0 }0 A
5 {$ b; N- I0 a( C2 K 6.2 库路径的设置1 {9 e% G, O& s3 ]1 t) ]
) w g' e1 J) k8 b7 k
! @8 J# u x8 E2 w; V 将${destdir}/lib路径添加到环境变量LD_LIBRARY_PATH中,最好添加到系统的配置文件中,这样就不必要每次都设置这个环境变量了。- ^) d/ d; H# Q: j# s
9 e$ h! B" ~* ^* K* X
* M& N$ ?, t: e- c5 F 例如,如果GCC 3.4.0安装在/usr/local/gcc-3.4.0目录下,在RH Linux下可以直接在命令行上执行或者在文件/etc/profile中添加下面一句:$ r) v- y/ J8 f
g0 S% j3 Z" ~/ m! x- h% k1 R
/ Q3 X' S: l! V- k. Q
setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.0/lib: $LD_LIBRARY_PATH$ m; x, T0 h( v5 F
% [4 v2 g0 V' ?2 g- ]
d. [ C5 ^* D2 ~ `$ K9 B+ g 7. 测试
0 K& k9 D$ N! c, E
+ w& K; `5 |& C. c3 M/ s9 n9 m1 z 用新的编译命令(gcc34、g++34等)编译你以前的C、C++程序,检验新安装的GCC编译器是否能正常工作。
/ F, K" w: A6 S
1 R" V8 y, h: {3 R# C1 w6 l
3 H7 w. F. `9 o' h2 G 8. 根据需要,可以删除或者保留${srcdir}和${objdir}目录。* G w' k3 c! [) |% S
# y3 S7 X; b6 F, o' Z8 c, v( H/ c M" h: x( C
后记:
7 G' Q; d4 y* {0 a h5 ]
+ `+ u. `# L) C/ o) p R. @
# i8 H. N" L7 z9 A0 N8 T4 Z 前两天刚安装好了GCC 3.4.0,把安装规划、安装过程、一些注意事项记录下来就形成了这篇文章。希望对大家、特别是还没有安装过GCC的朋友在安装GCC的时候有所帮助
0 H% N/ E. s! F7 D0 c, @! E1 R/ l' K& K$ v, a5 h
|
|