gcc学习
过程
C 或者 C++ 程序从源代码生成可执行程序的过程,需经历 4 个过程,分别是预处理、编译、汇编和链接
参数
gcc -E
1 | -E(大写) 预处理指定的源文件,不进行编译。 |
- gcc -E 指令只会将预处理操作的结果输出到屏幕上,并不会自动保存到某个文件。因此该指令往往会和 -o 选项连用,将结果导入到指令的文件中
gcc -S
1 | -S(大写) 编译指定的源文件,但是不进行汇编。 |
-
gcc 指令添加 -S(注意是大写)选项,即可令 GCC 编译器仅将指定文件加工至编译阶段,并生成对应的汇编代码文件
-
经过执行 gcc -S 指令,其生成了一个名为 demo.s 的文件,这就是经过编译的汇编代码文件。也就是说默认情况下,编译操作会自行新建一个文件名和指定文件相同、后缀名为 .s 的文件,并将编译的结果保存在该文件中。
-
如果需要的话,我们还可以为 gcc -S 指令添加 -o 选项,令 GCC 编译器将编译结果保存在我们指定的文件中
-
gcc -S 指令可以操作预处理后的 .i 文件,也可以操作源代码文件
-
gcc -S demo.i -o test.i
1
2
3
4
5
6
7
8
9
10
11
如果操作对象为 .i 文件,则 GCC 编译器只需编译此文件;
如果操作对象为 .c 或者 .cpp 源代码文件,则 GCC 编译器会对其进行预处理和编译这 2 步操作。
#### gcc -c
-
-c 编译、汇编指定的源文件,但是不进行链接。
1 |
|
gcc a.c #进行上述三个操作并连接,生成可执行文件a.out
gcc a.c b.c c.c -o test.out#一起编译连接三个文件,生成一个可执行文件
1 |
|
-o 指定生成文件的文件名。
##example
gcc -E demo.c -o demo.i
#### gcc -I
指定头文件位置,相对路径和绝对路径都可以
- 標題: gcc学习
- 作者: sdjasj
- 撰寫于: 2022-03-05 10:14:40
- 更新于: 2022-03-14 17:51:31
- 連結: https://redefine.ohevan.com/2022/03/05/gcc学习/
- 版權宣告: 本作品采用 CC BY-NC-SA 4.0 进行许可。
留言