首页 > 代码库 > C从源码到运行发生了哪些事
C从源码到运行发生了哪些事
一个C/C++程序从源代码到可执行程序主要经历了四个阶段:
①预处理。包括展开宏、处理#include,#if,#ifdef等指令、删除注释、还有一些其他操作。相关命令:gcc -E或cpp
②编译。对预处理文件进行分析并生产汇编代码,主要包括语法分析、语义分析、汇编代码生成、(源/汇编)代码优化。相关命令:gcc -S
③汇编。根据编译产生的汇编代码生成机器指令,过程相当于是根据汇编语法进行翻译。相关命令:gcc -c或as
④链接。用链接器链接程序运行需要的目标文件和库文件,生成可执行文件。链接分为动态链接和静态链接。相关命令gcc或ld
整个过程可以用下面的流程图来表示:
要注意对于静态链接库,在进行链接步骤时,相关实现代码会融合到a.out中;而对动态链接库,在链接时,相当于在程序中进行了标记,并没有把具体实现代码融合进来,所以在程序运行的时候,会调用具体的实现代码。简而言之,静态链接库具有时间优势,而动态链接库具有空间优势。通常会优先考虑用动态链接库。
C从源码到运行发生了哪些事
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。