是否可以扩展c ++文件的#include
行,可能使用 C 预处理器,这样我就可以在没有#includes
的情况下读取扩展文件,而是使用#include
d?
具体一点,如果我有
fileA.cpp:
#include "fileB.H"
int main()
{
//do whatever
return(0);
}
fileB.H:
#include "fileC.H"
//Some lines of code
fileC.H
//Some other lines of code
输出:
//Some other lines of code
//Some lines of code
int main()
{
//do whatever
return(0);
}
基本上,复制粘贴包含在一个大型文本/ C ++代码文件中的文件,而不编译?
如果我使用相关的-I<Directory containing files to include>
运行cpp,那么我得到一个长文本文件,而不仅仅是代码,它会给出传递给编译器的内容(呃!)
答案 0 :(得分:4)
对于gcc和clang,您可以使用-E选项(see similar answer)输出预处理器输出而不进行编译。
要同时显示示例输出中的注释,可以添加-CC和-P标志:
clang++ -E -CC -P fileA.cpp
All of the processor options for -E can be found on here, on gcc.gnu.org.
-CC 不要放弃评论,包括在宏扩展期间。这就像-C,除了宏中包含的注释也被传递 到扩展宏的输出文件。
-P 禁止在预处理器的输出中生成线标记。在运行预处理器时,这可能很有用 不是C代码的东西,将被发送到一个程序 可能会被线标者混淆。
对于Visual C ++编译器,您可以使用/ E. See this SO answer.