linux下gcc的安装与使用

linux下gcc的安装与使用,第1张

方法一:

该方法超简单:

sudoapt-getbuild-depgcc

就上面这条命令就可以搞定

方法二:

sudoapt-getinstallbuild-essential

还是简单,一句命令也可以搞定

安装完了可以执行

gcc--version

的命令来查看版本,输出如下:

gcc(GCC)4.2.3(Ubuntu4.2.3-2ubuntu7)

Copyright(C)2007FreeSoftwareFoundation,Inc.

编译则使用gcc命令。要往下学习首先就得熟悉gcc命令的用法。

gcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。

一. 常用编译命令选项

假设源程序文件名为test.c。

1. 无选项编译链接

用法:#gcc test.c

作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。

2. 选项 -o

用法:#gcc test.c -o test

作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。

3. 选项 -E

用法:#gcc -E test.c -o test.i

作用:将test.c预处理输出test.i文件。

4. 选项 -S

用法:#gcc -S test.i

作用:将预处理输出文件test.i汇编成test.s文件。

5. 选项 -c

用法:#gcc -c test.s

作用:将汇编输出文件test.s编译输出test.o文件。

6. 无选项链接

用法:#gcc test.o -o test

作用:将编译输出文件test.o链接成最终可执行文件test。

7. 选项-O

用法:#gcc -O1 test.c -o test

作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。

二. 多源文件的编译方法

如果有多个源文件,基本上有两种编译方法:

[假设有两个源文件为test.c和testfun.c]

1. 多个文件一起编译

用法:#gcc testfun.c test.c -o test

作用:将testfun.c和test.c分别编译后链接成test可执行文件。

2. 分别编译各个源文件,之后对编译后输出的目标文件链接。

用法:

#gcc -c testfun.c //将testfun.c编译成testfun.o

#gcc -c test.c //将test.c编译成test.o

#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test

以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。

你可在你的光盘上找,有一个GCC包和4个依赖文件:\x0d\x0aglibc-devel-2.3.4-2.13.i386.rpm\x0d\x0acpp-3.4.4-2.i386.rpm\x0d\x0aglibc-kernheaders-2.4-9.1.98.EL.i386.rpm\x0d\x0aglibc-headers-2.3.4-2.13.i386.rpm\x0d\x0agcc-3.4.4-2.i386.rpm\x0d\x0a\x0d\x0a如没有的话,可以用网上自动更新的方式安装,如fedora的话可用yuminstallgcc这条命令自动安装。

# 解决搭建LAMP环境遇到编译错误

# 请将Linux系统盘放入光驱

# 以下为Shell脚本

# 此脚本功能为安装gcc等解释器

mkdir -p /root/iso

mount /dev/cdrom /root/iso

cd /root/iso/Server

# C++

rpm -ivh compat-gcc-34-c++-3.4.6-4.i386.rpm --force --nodeps

rpm -ivh compat-libstdc++-296-2.96-138.i386.rpm --force --nodeps

rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm --force --nodeps

rpm -ivh gcc-c++-4.1.2-42.el5.i386.rpm --force --nodeps

rpm -ivh gcc-objc++-4.1.2-42.el5.i386.rpm --force --nodeps

rpm -ivh libstdc++-4.1.2-42.el5.i386.rpm --force --nodeps

rpm -ivh libstdc++-devel-4.1.2-42.el5.i386.rpm --force --nodeps

# gcc

rpm -ivh compat-gcc-34-3.4.6-4.i386.rpm --force --nodeps

rpm -ivh compat-gcc-34-g77-3.4.6-4.i386.rpm --force --nodeps

rpm -ivh compat-libgcc-296-2.96-138.i386.rpm --force --nodeps

rpm -ivh gcc-4.1.2-42.el5.i386.rpm --force --nodeps

rpm -ivh gcc-gfortran-4.1.2-42.el5.i386.rpm --force --nodeps

rpm -ivh gcc-gnat-4.1.2-42.el5.i386.rpm --force --nodeps

rpm -ivh gcc-java-4.1.2-42.el5.i386.rpm --force --nodeps

rpm -ivh gcc-objc-4.1.2-42.el5.i386.rpm --force --nodeps

rpm -ivh libgcc-4.1.2-42.el5.i386.rpm --force --nodeps

# C

rpm -ivh compat-glibc-2.3.4-2.26.i386.rpm --force -nodeps

rpm -ivh compat-glibc-headers-2.3.4-2.26.i386.rpm --force -nodeps

rpm -ivh glibc-2.5-24.i686.rpm --force -nodeps

rpm -ivh glibc-common-2.5-24.i386.rpm --force -nodeps

rpm -ivh glibc-devel-2.5-24.i386.rpm --force -nodeps

rpm -ivh glibc-headers-2.5-24.i386.rpm --force -nodeps

rpm -ivh glibc-utils-2.5-24.i386.rpm --force -nodeps

rpm -ivh libc-client-2004g-2.2.1.i386.rpm --force -nodeps

rpm -ivh libc-client-devel-2004g-2.2.1.i386.rpm --force -nodeps


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8476858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存