【问题标题】:What is a Preprocessor Macros File in Eclipse CDT?什么是 Eclipse CDT 中的预处理器宏文件?
【发布时间】:2014-09-16 11:51:38
【问题描述】:

在 Eclipse CDT 中,在 Project Properties -> C/C++ General -> Preprocessor Include Paths, Macros, etc. -> Entries -> CDT User Setting Entries -> Add 下有一个条目类型“Preprocessor Macros File”。

这种文件的用途和格式是什么,特别是与普通的包含文件不同?

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

【问题讨论】:

  • 考虑不使用 Eclipse 进行编译。了解如何编写您的 Makefile
  • @BasileStarynkevitch 我不使用 Eclipse CDT 进行编译,仅用于编辑。定义仍然很重要,例如不使#ifdef'd 部分变灰。
  • 然后,根据需要编辑您的Makefile
  • 实际上,出于好奇,我在询问更多内容,以了解它是否对任何事情有用。我没有找到任何文档。
  • 我很想找到这个问题的答案。

标签: c eclipse macros eclipse-cdt c-preprocessor


【解决方案1】:

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

gcc -std=c99 -dM -E - < /dev/null > gccmacros_c.h

然后让 Eclipse 使用作为预处理器宏文件生成的头文件。在设置 Eclipse CDT 的索引器以与远程和交叉编译 C/C++ 项目正常工作时,我发现这一步很有用。

编辑:更多信息请参见https://wiki.eclipse.org/HowTo_use_the_CDT_to_navigate_Linux_kernel_sourcehttps://askubuntu.com/a/188127

【讨论】:

  • 有趣,你有一些文档的链接吗?在这样的文件中允许什么,只是简单的定义?或者它可以处理更多的预处理器语法,例如#ifdef?带参数的宏?
  • 我通过阅读 [wiki.eclipse.org/… (tutorials) on using Eclipse to Navigate Linux kernel sources 了解了它的用途,教程的一部分谈到了添加内核的 [askubuntu.com/a/188127] (generated/autoconf. h 文件)通过预处理器宏文件包含选项。我只使用了其中只有#define 和 cmets 的头文件。所以我不知道是否需要真正的预处理器来解析文件。
  • 是的,我也讨厌这样,我总是必须尝试所有四种排列。我冒昧地将更正的链接添加到您的答案中。
【解决方案2】:

另一种方法是使用项目设置 XML 并在其中添加所有必需的宏。 您可以通过

生成基本 XML 文件
Right Click on Project -> Go to properties -> C/C++ General -> Path and Symbol

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2021-05-16
    • 2014-01-03
    相关资源
    最近更新 更多