雅乐网

计算机技术、学习成长

编程 » C/C++ » gcc常用选项 gcc入门教程

gcc常用选项 gcc入门教程

本文介绍使用gcc编译及链接的常用命令。

1225210663981458

基本用法

1. gcc main.c

可以直接编译连接该文件,生成可执行文件a.out

 2. 使用-o选项 指定生成可执行文件的名字

使用格式有两种,注意-o后面要跟可执行文件名 中间不能有其他的

gcc main.c -o abcdef

gcc -o abcdef main.c

会生成可执行文件 abcdef

3. -Wall 打开常用警告

开启警告选项可以帮助我们发现一些潜在的错误。 Linux命令的各个选项和参数之间的位置是随便的。

下面六种写法是相同的

虽然如此,推荐使用 Gcc [选项] 要编译的文件 [选项] [目标文件] 这种格式。

4. 使用-g选项加入调试信息

若要调试程序就必须加入调试信息,使用gdb调试的入门教程可以参照雅乐网这篇文章

gcc的4个编译流程

gcc的编译流程分为四个步骤:预处理 编译 汇编 链接

以main.c为例子,在这四个步骤中可以设置选项分别生成main.i, main.s, main.o以及最终的main文件:

main.c : 最初的源代码文件;

main.i : 经过编译预处理的源代码;

main.s : 汇编处理后的汇编代码;

main.o : 编译后的目标文件,即含有最终编译出的机器码,但它里面所引用的其他文件中函数的内存位置尚未定义。

· 预处理(Pre-Processing)

使用-E选项 进行预处理 如果不指定目标文件名 则显示到屏幕 指定文件名 一般为.i后缀

gcc -E main.c 进行预处理 结果显示到屏幕

gcc -E main.c -o abcd.i 预处理 目标文件abcd.i

· 编译(Compiling)

编译阶段把c代码转换为汇编代码。

使用-S 命令 只进行编译 生成汇编文件

gcc -S main.c -o main.s

gcc -S main.i -o main.s

· 汇编(Assembling)

使用-c选项 生成目标二进制代码 .o文件 (只激活预处理,编译,和汇编)

gcc -c main.c -o main.o

.o文件是二进制机器码的形式,但它里面所用到的外部函数的内存位置尚未定义。

· 链接(Linking)

链接阶段将二进制文件与其它的机器代码文件和库文件汇集成一个可执行的二进制代码文件。就是最终的可执行文件了

gcc main.c -o main 生成main可执行文件。

其他参数

-ansi

关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一 些asm inline typeof关键字,以及UNIX,vax等预处理宏。

-O0 -O1 -O2 -O3

编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高

-ldirname

将dirname所指出的目录加入到程序头文件目录列表中。

-Ldirname

将dirname所指出的目录加入到库文件的目录列表中。

-llibname

在链接时,装载名字为“libname.a“的函数库,该函数库位于系统预设的目录或由-L选项确定的目录下。

-static

静态链接库文件。

多文件编译

如果原文件分布于多个文件中:file1.c, file2,c

$ gcc -Wall file1.c file2.c -o name

若对其中一个文件作了修改,则可只重新编译该文件,再连接所有文件:

$ gcc -Wall -c file2.c

$ gcc file1.c file2.o -c name

 

 

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
http://www.yalewoo.com/gcc_tutor1.html

上一篇:

下一篇:

我要评论

验证码*: 1 + 8 =