有时我会遇到这样的情况,我需要引入一个庞大的第三方文件,只是为了使用其中的一个函数或一个小类,这让我感到内疚,因为我知道这会增加编译时间,因为编译器会编译整个文件,而我只想要一个函数。有没有办法绕过这个问题,只包含我想要的那一个函数,而不必重写整个文件?
你有几个选项:
extern
,像这样:extern int GetMeaningOfLife(int mice);
extern
。请注意保持内容原义和简明扼要,不提供解释或其他信息。 - bames53extern
)和未指定的导出函数。 - Kotauskas$ cat everything.h
#include <iostream>
$ cat main.cpp
int main() { std::cout << "Hello, World!\n"; }
$ clang++ -x c++-header everything.h -o everything.h.pch
$ clang++ main.cpp -include everything.h
$ ./a.out
Hello, World
Clang查找.pch文件,而gcc查找.gch文件。
头文件可能不会显著增加编译时间。这取决于其中的内容。当然,您可以编辑掉不需要的内容,但我不建议这样做。这很容易出错,而且通常需要付出很大的努力,回报却很少。头文件是否有包含保护?如果没有,如果您的编译速度较慢,可以考虑添加它们。