EclipseCDT中的预处理器宏文件是什么?

EclipseCDT中的预处理器宏文件是什么?,c,eclipse,macros,eclipse-cdt,c-preprocessor,C,Eclipse,Macros,Eclipse Cdt,C Preprocessor,在Eclipse CDT中,在项目属性->C/C++常规->预处理器包含路径、宏等->条目->CDT用户设置条目->添加下有一个条目类型“预处理器宏文件” 这种文件的用途和格式是什么,特别是相对于普通的include文件而言 Eclipse版本是带有CDT 8.4.0的Luna发行版(4.4.0)。它允许您告诉Eclipse CDT为定义的预处理器宏解析C头文件。例如,要使用GCC的C99默认预处理器宏,而不必单独添加它们,请首先生成头文件: gcc -std=c99 -dM -E - <

在Eclipse CDT中,在项目属性->C/C++常规->预处理器包含路径、宏等->条目->CDT用户设置条目->添加下有一个条目类型“预处理器宏文件”

这种文件的用途和格式是什么,特别是相对于普通的include文件而言


Eclipse版本是带有CDT 8.4.0的Luna发行版(4.4.0)。

它允许您告诉Eclipse CDT为定义的预处理器宏解析C头文件。例如,要使用GCC的C99默认预处理器宏,而不必单独添加它们,请首先生成头文件:

gcc -std=c99 -dM -E - < /dev/null > gccmacros_c.h
gcc-std=c99-dM-E-gccmacros\u c.h
然后让Eclipse使用作为预处理器宏文件生成的头文件。我发现这在设置EclipseCDT的索引器以正确处理远程和交叉编译C/C++项目时非常有用


编辑:有关详细信息,请参阅和

另一种方法是使用项目设置XML并在其中添加所有必需的宏。 您可以通过以下方式生成基本XML文件:

Right Click on Project -> Go to properties -> C/C++ General -> Path and Symbol
Symbol
选项卡中,为
GNU C
GNU C++
添加一些
pre-processor
,并使用窗口底部的“导出设置”链接将这些设置导出为文件。 然后手动编辑新宏的XML文件,并使用上述选项中的“导入设置”按钮导入


将保存的文件用作所有其他项目的模板,并在项目创建时导入一次。

考虑不使用Eclipse进行编译。了解如何编写
Makefile
@BasileStarynkevitch我不使用EclipseCDT进行编译,只用于编辑。定义仍然很重要,例如,对于不灰显的ifdef部分。然后,根据需要编辑
Makefile
。实际上,出于好奇,我想了解更多信息,看看它是否对任何事情都有用。我没有找到任何文档。我很想找到这个问题的答案。有趣的是,你有一些文档的链接吗?在这样的文件中允许什么,只是简单的定义?或者它可以处理更多的预处理器语法,例如
#ifdef
?带参数的宏?我通过阅读有关使用Eclipse导航Linux内核源代码的[(教程)了解了它的用途,教程的一节谈到了添加内核的[(生成的/autoconf.h文件)via预处理器宏文件包含选项。我只使用了其中只有#定义和注释的头文件。因此我不知道是否需要真正的预处理器来解析文件。是的,我也讨厌这样,我总是要尝试所有四种排列方式。我冒昧地将正确的链接添加到您的答案中。