Linux c编程之gcc

一、gcc介绍

  gcc是linux平台的C语言编译器,也是一个可执行程序。在linux平台也可以编译arm平台的可执行程序,一般用交叉编译器,如arm-xx-linux-gcc。

二、参数说明

-v: 查看gcc的版本
-c: 编译为目标文件,不链接库
-S: 编译为汇编代码
-E 预处理
-Wwarn: 设置警告
-Olevel:设计 优化级别可以是0,1,2,3或者S, 默认-O0, 即不进行优化
-Dname=value, 设置宏定义,用于调试
-Uname:取消宏定义
-I 指定额外的头文件搜索路径,gcc会在搜索标准头文件之前先搜索额外的头文件路径
-l: 链接库(动态库或静态库)
-std=standard: 设置采用的标准, 如-std=c99表示编译器遵循C99标准
-o outfile: 指定输出文件的文件名,默认输出为a.out
-g: 打开调试选项,编译出的可执行文件可以使用gdb进行调试
–static: 链接静态库, gcc编译时默认链接动态库

三、编译过程

  gcc编译时可以一条命令直接生成可执行文件,而实际的编译过程中是分为四个阶段。如下:

  1. 预处理
    在预处理阶段,输入的是C语言文件,这个阶段主要处理源文件中的#ifdef
    #include和#define等预处理命令,比如宏定义值被展开替换。一般生成中间文件*.i。
  2. 编译
    生成汇编语言文件*s
  3. 汇编
    将输入的汇编文件*.s转换成二进制机器代码*.o

你可能感兴趣的:(Linux,C网络编程实践,gcc,linux,c,c99,-wl)