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