要获得预处理输出,请使用以下命令:
g++ -E a.cpp > temp.cpp
如果a.cpp
的{{1}}个文件不在同一个文件夹中,我们会使用:
#include
现在,有几个g++ -I <directory> -E a.cpp > temp.cpp
文件,我想要一个预处理的输出
每个.cpp文件和头文件的巨大.cpp
依赖关系也分布在几个不同的子目录中;所以跟随选项非常麻烦:
#include
有没有更简单的方法(最好不使用g++ -I <dir1> -I <dir2> -I <dir3> ... -E a.cpp > temp.cpp
)?
(假设Makefile
在一个目录下)
答案 0 :(得分:2)
您需要使用相同的-I
集进行预处理和编译。
当您实际编译代码时,您肯定会使用一些-I
参数(可能由make文件生成)。
所以只需使用相同的(或编译,复制和粘贴-I
参数)。
我看到的唯一选择是将头目录重构为一个公共目录(使用#include <subdir/header.h>
子目录。)
但这是更多的工作(尽管可能值得付出努力)。
答案 1 :(得分:0)
一种方法是给你所有子目录所在的TOP目录。这样你就不必给很多-I。但这会减慢它。