【问题标题】:Eclipse C exclude header file in build configurationEclipse C在构建配置中排除头文件
【发布时间】:2012-10-14 01:23:15
【问题描述】:

在 Eclipse 中,使用 CDT。

有没有一种快速的方法来拥有两个相同的构建配置,但在一个配置中只使用 src/foo.h 而在另一个配置中只使用 src/bar/foo.h?

src/ 目录有很多其他的头文件,我乐观地希望当只有一个文件实际上不同时,不必将它们一一添加。

我也不想移动任何一个文件或修改它们,因为它们不是我自己编写的库或目录结构。 (如果真的需要,那我想我必须整理一下)

我想某种“排除”列表是理想的。存在吗?

【问题讨论】:

  • 你是什么意思,“只有一个文件实际上是不同的”?那些头文件是什么,是来自外部库吗?
  • 是的,这些来自外部库。我有两个构建配置。两者都使用所有相同的库文件。除了一个文件不需要包含在其中一个构建中,而是需要在另一个路径中包含另一个文件。

标签: c++ eclipse header-files eclipse-cdt


【解决方案1】:

定义一个宏,告诉您正在构建哪个构建配置,然后使用它来决定要包含哪个文件。

右键单击您的项目,选择“属性”。然后在弹出的对话框中选择 C/C++ Build,然后选择 Settings。您应该最终看到一个让您定义预处理器定义(宏)的视图。

然后在您的头文件中执行以下操作:

#ifndef MY_MACRO

// contents of header file only available when MY_MACRO is NOT defined    

#endif

或者你可以(并且应该)在包含点做,所以这是一个源文件:

#ifdef MY_MACRO
#  include "bar.h"
#else
#  include "foo/bar.h"
#endif

如果您包含来自多个源文件的头文件并且不想复制上述行,您可以添加另一个头文件,只需复制粘贴上面的行,然后在任何地方包含该头文件即可。

【讨论】:

  • 谢谢!。看起来有效。我找不到任何“宏”,所以我只是把它作为一个“符号”放在 c/c++ General -> Paths and symbols
猜你喜欢
  • 1970-01-01
  • 2012-08-11
  • 2015-11-25
  • 2012-04-23
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
  • 2018-08-24
相关资源
最近更新 更多