// a.cpp
void foo() {
uint16_t var_in_a;
}
// b.cpp
void foo() {
uint16_t var_in_b;
}
// c.cpp
void foo() {
uint16_t var_in_c;
}
在此示例中,我必须在所有<stdint.h>
文件中包括.cpp
文件。我想避免这种活动。我想在我的builder / IDE属性中指定此<stdint.h>
文件,并使其在每个.cpp
文件中包含此文件。
在编译任何.cpp
文件时,有没有办法使编译器包括指定的文件?
请给出以下编译工具/ IDE的答案
答案 0 :(得分:1)
简而言之,不是(通常不适用于每个构建系统),您不能让编译器包括它们依赖的头文件。他们无法知道哪些可能具有您使用的定义或原型。
现在,您可以制作一个包含常用头文件的头文件,但是如果某些cpp文件只需要这些头文件的一个子集,则编译器会做额外的工作,这可能会减慢构建速度。
有人将公用包含包含在预编译的标题中。
您可能会争辩说,最好只在需要的地方包含头文件,而在它们被编译/读取时缩小范围。
答案 1 :(得分:1)
正如评论中提到的那样,您正在搜索一个包含逗号的行。有关详细信息,请参见Include header files using command line option?。
Visual Studio具有类似的编译选项:/ FI。官方文档:https://docs.microsoft.com/en-us/cpp/build/reference/fi-name-forced-include-file?view=vs-2019