欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GNU gcc编译器

程序员文章站 2022-07-14 13:02:54
...

编译器

​ 负责把人能看懂的代码组成的文本文件,翻译成计算机能看懂的二进制文件,由预处理器、编译器、链接器组成。

​ gcc是GUN社区为了编译Linux代码而开发的一款免费的编译器,默认采用C89语法标准, -std=gnu99可以设置C99语法

  • 常用的参数:

    	-E 显示预处理的结果
    
    ​	-c 只编译不链接
    
    ​	-o 指定输出结果的名字
    
    ​	-I 指定头文件的加载路径
    
    ​	-S 生成汇编代码
    
    ​	-l(小写L) 指定要使用的库文件
    
    ​	-Wall 尽可能多地产生警告
    
    ​	-Werror 把警告当错误处理
    
    ​	-std 指定编译语法
    
    ​	-D 命令行定义宏 -DDEBUG
    

C代码变成可执行文件的过程:

  • 预处理:

    把源文件翻译成预处理文件

    gcc -E code.c 显示预处理的结果

​ gcc -E code.c -o code.i 生成以.i结尾的预处理文件

  • 编译:

    ​ 把预处理文件翻译成汇编文件

    gcc -S code.i 生成以.s结尾的汇编文件

  • 汇编:

    ​ 把汇编文件翻译成二进制的目标文件

    gcc -c code.s 生成以.o结尾的目标文件

  • 链接:

    ​ 把若干个目标文件合并成一个可执行文件

    gcc code.o a.o b.o c.o … 默认生成一个a.out的可执行文件

C文件类型:

.h	头文件

.h.gch	头文件的编译结果,会被优先使用

.c	源文件

.i	预处理文件

.s	汇编文件	.S

.o	目标文件

.a	静态库文件

.so	共享库文件

.out 可执行文件
相关标签: linux 编译器

上一篇: Attribute

下一篇: Attribute