参考链接
Journey of a C Program to Linux Executable in 4 Stages
15个最常用的GCC编译器参数
gcc的使用简介与命令行参数说明
《LINux C 从入门到精通》
可以先看上面3个链接
源代码编译成可执行文件的四步骤:
前缀知识
- gcc最基本的用法是:gcc [options] [filenames]
- 使用ls -l 命名可以看到是绿色的就是“可执行文件”
下面开始正文
准备好一个mian.c源文件,并且再终端中进入目录
代码如下:
#include <stdio.h>
int main(void)
{
printf("hello world!\n");
}
普通方法
输入命令gcc main.c
得到一个a.out文件,具有可执行属性。
如果加上-o参数。
例如 gcc main.c -o main
就会生成一个main可执行文件(tips:使用ls -l 命名可以看到是绿色的就是“可执行文件”)
需要注意,-o后面的输出名称不可以是和源文件重名(tips:再linux的文件管理中,文件名包含后缀,也就是说后缀也是文件名的一部分。事实上,linux系统识别一个文件的类型是通过文件的属性识别的,而不是window下通过后缀识别)
-E参数,预处理
输入命令 gcc -E main.c
可以看到,什么都没有生成,但是预处理结果打印在了终端里面。
如果想让与处理结果保存成文件应该怎么做?有两个办法
- gcc -E main.c > main.i
- gcc -E main.c -o main.i
gcc -E main.c > main.i
可以看到,生成了一个mian.i的文件,打开它会看到数百行陌生的内容。
(预处理后的文件一般加.i后缀)
gcc -E main.c -o main.i
可以看到,生成的内容相等,且都是不可执行的文件
但是 > 并不等同于 -o,他们之间是有区别的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。