美文网首页
1.c语言编译过程

1.c语言编译过程

作者: 飞行员舒克_ed03 | 来源:发表于2020-08-19 19:00 被阅读0次

    4个步骤:

    Preprocessing预处理阶段:

    即完成宏定义和include 文件展开等工作;生成.i文件。
    GCC命令为:·gcc -E

    Compilation编译:

    根据编译参数进行不同程序的优化,编译成汇编代码;生成.s文件。
    GCC命令为:·gcc -S

    Assemble汇编:

    用汇编器把上一阶段生成的汇编代码进一步生成目标代码;生成.o文件。
    一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。
    GCC命令为:·gcc -C

    Linking链接:

    用链接器把上一阶段生成的目标代码、其他一些相关的系统提供的目标代码(如crtx.o)和系统或用户提供的库链接起来,生成最终的执行代码。生成可执行文件。
    链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(LibraryFile),也就是 .lib文件,在UNIX下,是Archive File,也就是.a文件。
    GCC命令为: ar cr libstatic.a add.o sub.o

    helloword.c -> .i -> .s -> .o

    文件扩展名 文件类型
    .c C语言代码
    .C、 .cc C++语言代码
    .i 预处理后的C语言代码
    .s、.S 汇编语言代码
    .o 目标代码
    .a 静态链接库(程序编译时使用)
    .so 动态链接库(程序运行时使用)

    编译的命令是gcc。大项目的构建就需要用到make命令和makefile文件。

    相关文章

      网友评论

          本文标题:1.c语言编译过程

          本文链接:https://www.haomeiwen.com/subject/mnydjktx.html