C++编译链接

编译:compile,先针对单独原文件进行处理。
每个cpp文件(文本形式存在的源代码)作为一个编译单元,被独立编译成一个目标文件(obj,机器语言形式),它用目标语言来描述.cpp的内容。
不同CPP文件的函数可以通过声明的方式使用,通常声明放在H文件里。


链接:link,把compile处理的结果组合成一个完整的可执行文件。
接器将所有的目标文件obj链接起来,形成一个.exe可执行文件。

过程:

一、预编译(预处理)
处理#define #if #include这类#开头的语句,这些称为预编译指令。
这个过程中会把.h文件和.c/.cpp文件组合成最终交给compile过程的原文件。
这个原文件是不包含任何#开头的语句的。所有#define定义的宏也会被替换。


二、编译
把上面那个原文件编译成.o或者VC里是.obj文件。
这个文件保存了机器码化的函数、函数的描述、全局变量的描述、乃至段的描述等等。


三、链接
把可执行程序需要的所有的编译过程产生的.o或者.obj文件组合到一起。
(这里也包括.lib文件,.lib文件件本质上就是打包的.obj文件集合)。
另外连接过程还会组合一些其他数据,比如资源、可执行文件头等等。
可见链接库那篇文章。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值