linux--gcc编译

在这里插入图片描述

首先看自己是否安装gcc
安装好gcc后才能用

GCC 编译器在编译一个C语言程序时需要经过以下 4 步:

  1. 将C语言源程序预处理,生成.i文件。
  2. 预处理后的.i文件编译成为汇编语言,生成.s文件。
  3. 将汇编语言文件经过汇编,生成目标文件.o文件。
  4. 将各个模块的.o文件链接起来生成一个可执行程序文件。

常见的编译命令

1.无选项

用法:#gcc test.c

作用:将test.c预处理、汇编、编译并链接形成可执行文件。

这里未指定输出文件,默认输出为a.out。
请添加图片描述

2. 选项 -o

用法:#gcc test.c -o test

作用:将test.c预处理、汇编、编译并链接形成可执行文件test。

-o选项用来指定输出文件的文件名。
请添加图片描述

3. 选项 –E 预处理指定的源文件,不进行编译。

将C语言源文件进行预处理,但是并不编译该程序。对于一般的预处理问题,可以使用这个选项进行查看,例如,宏的展开问题、文件的包含问题等。

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

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

在这里插入图片描述

4. 选项 –S 将C语言源文件编译为汇编语言,但是并不汇编该程序。

用法:#gcc -S test.i

作用:将预处理输出文件test.i汇编成test.s文件。
在这里插入图片描述

5. 选项 –c 编译、汇编指定的源文件,但是不进行链接

用法:#gcc -c test.s

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

在这里插入图片描述

6. 选项 -o

用法:#gcc test.o -o test

作用:将编译输出文件test.o链接成最终可执行文件test。
在这里插入图片描述

7. 选项-O

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

作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。
在这里插入图片描述

8. 选项-I directory

用法:指定 include 包含文件的搜索目录在这里插入图片描述

9 选项-g 生成调试信息,该程序可以被调试器调试

在这里插入图片描述

10. 选项 –L directory 指定库文件目录在这里插入图片描述

多源文件的编译方法

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

1. 多个文件一起编译

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

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

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

用法:

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

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

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

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

其他见 :https://blog.csdn.net/songhui1024/article/details/85243246
ink
关于调用库文件

猜你喜欢

转载自blog.csdn.net/qq_35629971/article/details/120408168
今日推荐