【摘要】
问题: 一旦修改一个程序,就需要重新加工所有文件n个文件通过编译生成n个目标文件,然后进行链接,如果一个目标文件修改,只要对它进行重新编译,再链接。
链接处理的逻辑简单,速度较快。
分快处理的相关概念:
声明:告诉一个源文件,其他文件有某个变量,让编译通过,在链接的时候具体查找定义。
构造头文件来包含所有的声明,注意,头文件也可以包含定义。
翻译单元:源…
问题: 一旦修改一个程序,就需要重新加工所有文件
n个文件通过编译生成n个目标文件,然后进行链接,如果一个目标文件修改,只要对它进行重新编译,再链接。
链接处理的逻辑简单,速度较快。
分快处理的相关概念:
声明:告诉一个源文件,其他文件有某个变量,让编译通过,在链接的时候具体查找定义。
构造头文件来包含所有的声明,注意,头文件也可以包含定义。
翻译单元:源文件+ 相关头文件 – 应忽略的预处理语句。
编译器来处理翻译单元。
编译链接模型
预处理
避免头文件被重复引用
# pragma once
#ifdef 解决方案
编译器
可以对代码进行编译优化。
release在编译过程引入更多优化,提高执行速度,但是不适合debug。
链接
常见错误:
找不到定义:
如下图,编译通过,链接没有通过。
文章来源: blog.csdn.net,作者:海滩游侠,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/m0_47096428/article/details/116472804
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END