如何获得单独的头文件的预处理输出?

我有一个头文件,在我使用像:

#if defined(LINUX) || defined(ANDROID) pthread_t gpthread; #endif 

现在,我想在编译过程中传递-DLINUX之后只获取头文件内容。 有没有办法得到它? 如果我使用:

 #arm-linux-androideabi-g++ -E main.c > temp 

那么输出对我来说有点混乱。

你可以让编译器只对头文件进行预处理:

 arm-linux-androideabi-g++ -DLINUX -E foo.h > temp 

您可能有兴趣在预处理输出中留言(以增强可读性)

  arm-linux-androideabi-g++ -DLINUX -C -E foo.h > foo.i 

然后看(用编辑器或传呼机)到foo.i

生成的foo.i包含以#开始的行以传送位置信息。

为什么不直接调用cpp -D<something to be defined> <header file name>呢?