Mig*_*uel 3 c++ include single-file c-preprocessor
这可能听起来像一个非常奇怪的问题,但我确实需要这个:我有一堆c ++头文件(来自一些只有头的库)和一个cpp文件.我想要做的是生成一个没有包含任何内容的单个cpp文件.
为什么?对于一个比赛,其中编译器没有我正在使用的库,以及一个只能提交一个cpp文件的库.
理想情况下,这个"脚本"会创建一个仅使用实际需要的文件,而不仅仅是复制和粘贴所有"#includes".
我确信在代码中添加"#include"时预处理器会生成一些文件.那么,我怎样才能看到这些中间文件(可能很长)?
GCC提供-E选项,因此在预处理文件后停止.该文档具有更多可应用于预处理器的选项.
如上所述-E,clang也接受了.
Visual Studio提供/ P(文件的预处理)编译器开关.它指示编译器:
预处理[es] C和C++源文件,并将预处理的输出写入文件.
输出将写入具有基于源文件的文件名的文件,扩展名为.i.要指定其他文件名,请使用/ Fi(预处理输出文件名)编译器开关.
如果您传递-E选项(输出到stdout)或-P(输出到文件),则英特尔C++编译器将在预处理后停止.在Windows上,这些将分别是/E和/P开关.该手册有更多这方面的信息.