从源文件到可执行文件
编译器
1.不同语言、不同类型CPU使用的编译器不同
交叉编译器:适用不同CPU架构
2.编译后生成的是.obj的目标文件【本机代码】
链接器
1.将所有必要的目标文件链接起来生成exe文件
2.库文件:由多个目标文件打包而成,链接时指定,可提取所需的目标文件
3.无法解析外部符号:找不到包含目标变量的函数的目标文件而无法完成链接
4.导入库:包含函数位于dll的信息以及dll相关信息
5.静态链接库:直接链接到exe文件
6.构建:编译+链接
EXE文件运行
1.栈:存放局部变量以及调用函数时传递的参数
2.堆:程序运行时存放任意数据
3.运行时的空间:操作系统专用空间+变量空间+函数空间+栈空间+堆空间
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Martin's Blog!
评论
ValineDisqus
