首页 > 代码库 > 程序员的自我修养-链接、装载与库-2
程序员的自我修养-链接、装载与库-2
第二部分 静态链接
被隐藏了的过程:预处理、编译、汇编、链接(Build过程 在IDE中)
预编译:
源代码hello.cpp和相关头文件(stdio.h)被预编译器cppp预编译成一个.i文件。
预编译命令:
gcc -E hello.c -o hello.i
或者
cpp hello.c > hello.i
过程:预编译主要处理那些源代码中的以‘#‘开始的预编译指令。比如“#include” "#define"等。
包括: 展开宏定义;
处理所有条件预编译指令:"#if" "#ifdef" "#elif" "#else" "#endif";
将被包含的文件插入到预编译指令的位置 比如头文件(递归);
删除所有的注释;
添加行号和文件名标志,方便调式;
保留所有的#pragma编译器指令
编译:
预编译过程就是进行一系列的词法分析、语法分析、语义分析以及优化后产生相应的汇编代码文件,是核心部分也是最复杂的部分。
gcc -S hello.i -o hello.s
程序员的自我修养-链接、装载与库-2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。