在Eclipse中,使用CDT。
是否有快速方法可以使用两个相同的构建配置,但在一个配置中只使用src / foo.h而在另一个配置中只使用src / bar / foo.h?
src / dir有很多其他头文件,我乐观地希望在只有一个文件实际上不同的时候不必一个一个地添加它们。
我也不想移动任何一个文件或修改它们,因为它们不是我自己编写的库或目录结构。 (如果我真的需要,那么我想我必须解决它)
我认为某种“排除”列表是理想的。那存在吗?
答案 0 :(得分:2)
定义一个宏,告诉您正在构建哪个构建配置,然后使用它来决定要包含哪个文件。
右键单击您的项目,选择“属性”。然后在弹出的对话框中选择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
如果您包含来自多个源文件的头文件,并且不想复制上述行,您可以添加另一个标题,只需复制粘贴上面的行,然后在任何地方包含该标题即可。