目前我想调试我的包含。为此,我想获取经过预处理的代码,但没有任何系统头文件 - 只有我自己的代码。
我用标志 "-E"
试过了和 "-nostdinc"
.但是后来我收到错误,例如 <string>
不见了。如何禁用此类预处理错误?
最佳答案
How to disable such preprocessing errors?
您可以创建一组名称与标准库 header 匹配的 header 文件。将这些 header 放在 include 目录中。让文件为空。
Using clang or g++/gcc to print preprocessed code without including files from system paths
除了空头方法之外,我还可以看到另外两种方法:
与其使用编译器的完整预处理器,不如编写您自己的预处理器,它只执行您想要的处理子集。
或者,编写一个后预处理器,从预处理结果中删除标准 header 内容。
关于c++ - 使用 clang 或 g++/gcc 打印预处理代码而不包括来自系统路径的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62578093/