2

为了获得预处理的输出,使用以下命令:

g++ -E a.cpp > temp.cpp

如果文件不在同一个文件夹中,那么我们使用a.cpp#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)?
(假设dir1, dir2, ...在一个目录下)

4

2 回答 2

2

You need the same set of -I for preprocessing and for compiling.

When you actually compile the code, you surely use some set of -I parameters (probably generated by a make file).
So just use the same (or compile, and copy&paste the -I parameters).

The only alternative I see is restructuring your header directories to be in a common directory (with sub-directories, using #include <subdir/header.h>).
But this is much more work (though it may be worth the effort).

于 2012-05-17T06:42:06.720 回答
0

一种方法是您提供所有子目录所在的 TOP 目录。这样你就不必给很多 -I。但这会减慢它的速度。

于 2012-05-17T06:06:29.273 回答