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

时间:2012-03-15 06:31:28

标签: android linux c-preprocessor

我有一个头文件,我在其中使用过:

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

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

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

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

3 个答案:

答案 0 :(得分:4)

您可以要求编译器仅对头文件进行预处理:

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

答案 1 :(得分:4)

您可能有兴趣使用

在预处理输出中保留注释(以增强可读性)
 arm-linux-androideabi-g++ -DLINUX -C -E foo.h > foo.i

然后(使用编辑器或寻呼机)查看foo.i

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

答案 2 :(得分:0)

为什么不直接致电cpp -D<something to be defined> <header file name>