gcc的常用参数和编译过程(Linux Ubuntu)

参考链接
Journey of a C Program to Linux Executable in 4 Stages
15个最常用的GCC编译器参数
gcc的使用简介与命令行参数说明
《LINux C 从入门到精通》

可以先看上面3个链接


源代码编译成可执行文件的四步骤:

gcc的常用参数和编译过程(Linux Ubuntu)_第1张图片

前缀知识

  • gcc最基本的用法是:gcc [options] [filenames]
  • 使用ls -l 命名可以看到是绿色的就是“可执行文件”

下面开始正文
gcc的常用参数和编译过程(Linux Ubuntu)_第2张图片
准备好一个mian.c源文件,并且再终端中进入目录
代码如下:

#include 

int main(void)
{
    printf("hello world!\n");
}

普通方法

输入命令gcc main.c

得到一个a.out文件,具有可执行属性。
gcc的常用参数和编译过程(Linux Ubuntu)_第3张图片

如果加上-o参数。

例如 gcc main.c -o main

就会生成一个main可执行文件(tips:使用ls -l 命名可以看到是绿色的就是“可执行文件”)

需要注意,-o后面的输出名称不可以是和源文件重名(tips:再linux的文件管理中,文件名包含后缀,也就是说后缀也是文件名的一部分。事实上,linux系统识别一个文件的类型是通过文件的属性识别的,而不是window下通过后缀识别)

gcc的常用参数和编译过程(Linux Ubuntu)_第4张图片

-E参数,预处理

输入命令 gcc -E main.c

gcc的常用参数和编译过程(Linux Ubuntu)_第5张图片

可以看到,什么都没有生成,但是预处理结果打印在了终端里面。

如果想让与处理结果保存成文件应该怎么做?有两个办法

  1. gcc -E main.c > main.i
  2. gcc -E main.c -o main.i

gcc -E main.c > main.i

可以看到,生成了一个mian.i的文件,打开它会看到数百行陌生的内容。

(预处理后的文件一般加.i后缀)

gcc的常用参数和编译过程(Linux Ubuntu)_第6张图片

gcc -E main.c -o main.i

可以看到,生成的内容相等,且都是不可执行的文件

gcc的常用参数和编译过程(Linux Ubuntu)_第7张图片

但是 > 并不等同于 -o,他们之间是有区别的。

你可能感兴趣的:(c,linux)