Linux下C开发环境的搭建过程---gcc、glibc安装和升级操作⽅法
Linux下C开发环境的搭建过程
——安装gcc
前⾔
在Linux系统中,软件安装程序⽐较纷繁复杂,不过最常见的有两种:
1)⼀种是软件的源代码,您需要⾃⼰动⼿编译它。这种软件安装包通常是⽤gzip压缩过的
tar包(后缀为.)。
2)另⼀种是软件的可执⾏程序,你只要安装它就可以了。这种软件安装包通常被是⼀个
RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。
Linux和C天⽣就有不解之缘,Linux操作系统的内核主要就是⽤C写的,另外Linux下的很多
软件也是⽤C写的,特别是⼀些著名的服务软件,⽐如MySQL、Apache等。初学者在编译
MySQL这样的软件时,可能遇到过各式各样的错误,其实只要你初步了解了Linux的C开发环
境,你就能⾃⾏解决这些错误。
Linux的C开发环境与Windows的有所不同,在Linux下,⼀个完整的C开发环境由以下三个
部分组成:
1、函数库:glibc
要构架⼀个完整的C开发环境,Glibc是必不可少的,它是Linux下C的主要函数库。Glibc有
两种安装⽅式:
A、安装成测试⽤的函数库——在编译程序时⽤不同的选项来试⽤新的函数库
B、安装成主要的C函数库——所有新编译程序均⽤的函数库
Glibc含⼏个附加包:LinuxThreads、locale和crypt,通常它们的⽂件名随版本不同⽽类似
于下列⽂件名:
glibc-2.
glibc-linuxthreads-2.0.
glibc-localedate-2.0.
glibc-crypt-2.0.
2、编译器:gcc
gcc(GNU CCompiler)是GNU推出的功能强⼤、性能优越的多平台编译器,gcc编译器能将
C、C++语⾔源程序、汇编程序和⽬标程序编译、连接成可执⾏⽂件,以下是gcc⽀持编译的⼀
些源⽂件的后缀及其解释:
3、系统头⽂件:glibc_header
缺少了系统头⽂件的话,很多⽤到系统功能的C程序将⽆法编译。
在Linux下安装GCC的具体过程
下⾯以CentOS 4.8为例,介绍如何搭建Linux的C开发环境,如果是更⾼版本的CentOS也可以参考,只是要注意软件版本的不同。
GCC建议我们将⼀个版本的GCC安装在⼀个单独的⽬录下。这样做的好处是将来不需要它的时候可以⽅便地删除整个⽬录即可(因为GCC没有uninstall功能);并且在安装完成后,仍然能够使⽤原来低版本的GCC编译器,即⼀个系统上可以同时存在并使⽤多个版本的GCC编译器。缺点是在安装完成后要做⼀些设置⼯作才能使编译器⼯作正常。
1、下载GCC
到官⽅⽹站或官⽅FTP站ftp:///gnu(建议使⽤FlashFXP下载⼯具)可以查到下载资源。⽬前GCC的最新版本为 4.5.1。可供下载的⽂件⼀般有两种形式:gcc-4.5.和gcc-4.5.1.tar.bz2,只是压缩格式不⼀样,内容完全⼀致,下载其中⼀种即可。
2、解压缩
根据压缩格式,选择下⾯相应的⼀种⽅式解包:
tar  zvxf  gcc-4.5.  或者  tar  jvxf  gcc-4.5.1.tar.bz2
根据个⼈所好选择解压位置,新⽣成的gcc-4.5.1这个⽬录被称为源⽬录,我们⽤${srcdir}表⽰它。以后在出现${srcdir}的地⽅,应该⽤真实的路径来替换它。在${srcdir}/INSTALL⽬录下有详细的GCC安装说明,可⽤浏览器打开index.html阅读。
我选择将gcc和glibc分别安装在/opt/gcc-4.5.1和/opt/glibc- 2.7下,因为若选择安装在/、
/usr、/usr/local等位置,⼀些库⽂件会默认安装到 /lib下,有些库会默认安装到/usr/lib下,从⽽覆盖掉原有的⼯具链,这是我们所不希望的。
[root@localhost test]# pwd
/test/
[root@localhost test]# ls
gcc-4.5.
[root@localhost test]# tar zvxf gcc-4.5.
[root@localhost test]# ls
gcc-4.5.1  gcc-4.5.
3、建⽴⽬标⽬录
⽬标⽬录(⽤${objdir}表⽰)是⽤来存放编译结果的地⽅。GCC建议编译后的⽂件不要放在源⽬录${srcdir]中(虽然这样做也可以),最好单独存放在另外⼀个⽬录中,⽽且不能是${srcdir}的⼦⽬录。
例如,可以这样建⽴⼀个叫 gcc-build 的⽬标⽬录(与源⽬录${srcdir}是同级⽬录):
[root@localhost test]# pwd
/test
[root@localhost test]# mkdir gcc-build
[root@localhost test]# ls
gcc-4.5.1  gcc-4.5.  gcc-build
以下的操作主要是在⽬标⽬录 ${objdir} 下进⾏。
4、配置
配置的⽬的是决定将GCC编译器安装到什么地⽅(${destdir}),⽀持什么语⾔以及指定其它⼀些选项等。其中,${destdir}不能与${objdir}或${srcdir}⽬录相同。
配置是通过执⾏${srcdir}下的configure来完成的。其命令格式为(记得⽤你的真实路径替换${srcdir}和${destdir}):
${srcdir}/configure  --prefix=${destdir} [其它选项]
例如,如果想将GCC 4.5.1安装到/opt/gcc-4.5.1⽬录下,则${destdir}就表⽰这个路径。
在我的机器上,我是这样配置的:
[root@localhost test]# cd gcc-build/
[root@localhost gcc-build]# ../gcc-4.5.1/configure --prefix=/opt/gcc-4.5.1
--enable-threads=posix      --disable-checking    --enable--long-long
--host=i386-RedHat-linux    --with-system-zlib
--enable-languages=c,c++,java
这样就将GCC安装在/opt/gcc-4.5.1⽬录下,⽀持C/C++和JAVA语⾔,其它选项参见GCC提供的帮助说明。
注:这⾥有⼀个问题:如果系统上没有装过编译器,是不能安装源代码形式的GCC的。——悲剧就这样发⽣了~
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
这种情况下,只能到⽹上⼀个与系统相适应的RPM⼆进制形式的GCC软件包来安装。这⾥不多说了,请参照另⼀篇博⽂吧!
还有⼀个问题(怎么我安装的时候就这么多问题啊~),GCC编译需要GMP、MPFR、MPC这三个库:
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
说明要安装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。
先开始安装GMP。解压GMP的压缩包后,得到源代码⽬录gmp-4.3.2。在该⽬录的同级⽬录下建⽴⼀个临时的编译⽬录,这⾥命名为gmp-build。然后开始配置安装选项,进⼊gmp-build
⽬录,输⼊以下命令进⾏配置:
[root@localhost gmp-build]# pwd
/test/gmp-build
[root@localhost gmp-build]# ../gmp-4.3.2/configure --prefix=/opt/gmp-4.3.2
这⾥--prefix选项代表要将该库安装在哪⾥,我是装在/opt/gmp-4.3.2⽬录下,后⾯的安装都会⽤到这个选项。
这时在gmp的编译⽬录下就会⽣成⼀个makefile⽂件,现在开始编译安装。
[root@localhost gmp-build]# make
[root@localhost gmp-build]# make install
这样就安装好了gmp。mpfr和mpc的安装⽅法与此类似。不过在配置的时候要注意把依赖关系选项加进去,具体命令如下:
[root@localhost mpfr-build]# ../mpfr-2.4.2/configure  --prefix=/opt/mpfr-2.4.2  --with-
gmp=/opt/gmp-4.3.2
[root@localhost mpc-build]# ../mpc-0.8.1/configure  --prefix=/opt/mpc-0.8.1  --with-
gmp=/opt/gmp-4.3.2 --with-mpfr=/opt/mpfr-2.4.2
安装好这三个库之后,就可以正式安装gcc了。可能需要在选项处添加上⾯三个库的位置,如:--with-gmp=/opt/gmp-4.3.2  --with-mpfr=/opt/mpfr-2.4.2  --with-mpc=/opt/mpc-0.8.1
5、编译
[root@localhost gcc-build]# make
很长时间才能编译完,要有耐⼼。约⽤40分钟(可能更长、巨长……)吧,只有等待。
6、安装
执⾏下⾯的命令将编译好的库⽂件等拷贝到/opt/gcc-4.5.1⽬录下(根据你设定的路径,可能需要管理员的权限),这才是真正的安装:
[root@localhost gcc-build]# make install
7、链接
gcc、g 、gcj的设置。要想使⽤GCC的gcc等命令,简单的⽅法就是⽤符号链接的⽅式把它链接到/user/bin ⽬录下:
[root@localhost gcc-build]# cd  /usr/bin
[root@localhost bin]# ln -s /opt/gcc-4.5.1/bin/gcc gcc
[root@localhost bin]# ln -s /opt/gcc-4.5.1/bin/g g
[root@localhost bin]# ln -s /opt/gcc-4.5.1/bin/gcj gcj
这样,就可以分别使⽤gcc、g、gcj命令来分别快速编C、C++ 、JAVA的程序了。
8、Test
test.c代码如下:mysql下载下来没安装包
#include
main()
{
printf("Hello world!\n");
}
[root@localhost ~]# cd /test
[root@localhost test]# gcc test.c
[root@localhost test]# ./a.out
Hello world!
-
---------------------------------------------
说来惭愧,学习嵌⼊式系统设计与应⽤已快⼀学期了,竟然还未⽤GCC编译个程序,更不⽤说使⽤其他编程环境了,其原因在于我的系统上没有GCC,想装⼀个可是不知道怎样个装法,Google了⼀下,发现基本上都是介绍系统上已有GCC的那种安装源码形式的GCC,我系统上本来就没有gcc,所以不能安装源码形式的gcc,那怎样解决这种状况呢?
解决⽅法有三种:
①重装系统,在安装时选择定制安装包,选上GCC或选完全安装;
②利⽤安装盘装(so easy!);
③安装⼆进制形式的GCC(.rpm)
下⾯介绍安装⼆进制形式的gcc(看起来⽐较⿇烦):
事先确定要安装与系统相适应的rpm,由此到下⾯这个⽹址:
mirrors.jtlnet/centos/4/apt/i386/RPMS.os/
⾥⾯很全,基本涵盖了安装gcc所需的所有rpm。
注意:下⽂的 $ 表⽰终端。
1)安装gcc
下载:gcc-3.4.6-11.i386.rpm (不要下成gcc4,详见⽂章最后)
$ rpm -ivh gcc-3.4.6-11.i386.rpm

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。