当我们打算使用引用项目中的方法时,为什么我们必须#include
预处理程序指令,它正在复制&将我们打算使用的代码粘贴到同一个头文件中,该文件仍在实际使用它的方法之上/之前。
基本上,即使我在同一个解决方案文件中包含了所有项目,并且头文件正确地找到了对方(智能感知并不抱怨/正确的linting发生),我仍然得到链接器错误。但即使引用项目纯粹是关于解决链接器错误,如果intellisense可以 peek / 显示定义到我从单独项目导入的代码,那不是吗?意味着Visual Studio也知道我链接哪个项目?
必须有一个原因,我们#include
并参考包含的项目,即使现在在VS 2013中。有人可以帮助解释原因吗?
答案 0 :(得分:2)
“必须有一个原因,我们都
#include
并且即使现在在VS 2013中引用所包含的项目。有人可以帮助解释原因吗?”
包含头文件允许使用那里的声明(函数,类或结构)。但要获得一个完全可执行的程序,还有更多必要:
#include
'd头文件如果您只有标题库,则至少2个点不相关,但Visual Studio仍需要项目参考来解析标题文件pathes。
特别是对于Visual Studio,还有#import
指令可用,这样可以更容易地链接到共享库(并将它们作为独立项目保留,从同一个解决方案中引入参考库)。
答案 1 :(得分:0)
不,链接器在计算上不可行地猜测您希望在任何给定时间链接到项目中的定义。它没有尝试这样做是件好事。
答案 2 :(得分:-2)
C / C ++编译过程包含两个步骤: