我是一名C++学习者,在学习大型项目编译优化时,了解到将代码分离为多个文件可以提高编译速度。
然而,这本书没有告诉我,我也在其他书籍和网上寻找过,但没有找到答案:链接器(在编译期间)如何知道要包含哪些文件。
当我创建一个新文件时,我使用 #include "newfile.h"
将其头文件与主文件连接起来,但是在这个头文件中,我没有写明函数定义在哪里。
所以,我的想象是它从主文件开始,并在那里找到与其他文件的“连接”。问题是,它如何找到那些似乎不需要与其头文件同名的 .cpp 文件。
示例:
主文件:
#include <iostream>
#include "krneki_H.h"
using namespace std;
int main()
{
krneki1();
krneki2();
krneki3();
}
还有头文件:
void krneki1();
void krneki2();
void krneki3();
新的 .cpp 文件:
#include <iostream>
#include "krneki_H.h"
using namespace std;
void krneki1() {
cout<<"Krneki1"<<endl;}
void krneki2() {
cout<<"Krneki2"<<endl;}
void krneki3() {
cout<<"Krneki3"<<endl;}
注意,没有指示使用第二个cpp文件。 它只是知道如何使用它。 它会搜索地图中的所有.cpp文件吗?
感谢您的回答。
.cpp
或.h
文件。 - Galik#include
指令会将头文件中的文件包含进来,就好像你在那一行键入了它们一样。最后,链接器会链接函数调用并查找main
函数,并将其作为第一条指令放置。 - wally