Osw*_*ald 4 eclipse indexing eclipse-cdt eclipse-juno
我的源代码中有:
// foo.cpp
struct foo
{
foo() {}
#ifdef I_WANT_THIS_FEATURE
void bar() {}
#endif
};
Run Code Online (Sandbox Code Playgroud)
在我的 Makefile 中我有
foo.o: foo.cpp
g++ -c -DI_WANT_THIS_FEATURE foo.cpp -o foo.o
Run Code Online (Sandbox Code Playgroud)
这可以从命令行以及我在 Eclipse 中创建的外部构建器(它基本上定义了一些环境变量和调用make)进行良好的编译,并且我可以调用foo::bar().
但是,在 Eclipse CDT 源代码编辑器中,我定义的部分foo::bar()具有灰色背景(表明foo::bar()不会包含在构建中),并且类型对象上的代码完成foo不建议bar()作为可以调用的方法。
如何使用I_WANT_THIS_FEATURE自定义 makefile 在 Eclipse CDT makefile 项目中定义宏,以便源代码编辑器和代码完成可以识别该宏?
除了奥斯瓦尔德的回答之外:
如果您有多个构建配置,则 Eclipse Indexer 的默认行为似乎是它始终使用第一个构建配置。
就我而言,定义仅在第三个构建配置中定义,因此 Oswald 提供的解决方案没有帮助。
要全局更改此设置,请选择Window -> Preferences -> C/C++ -> Indexer。选择使用活动构建配置
您还可以选择覆盖Project -> Properties -> C/C++ General -> Indexer下的项目设置中的全局设置,然后选择Enable project Specific settings,然后选择Use active build configuration。
之后,Oswald 提供的解决方案应该有效:
项目 -> 属性 -> C/C++ 常规 -> 路径和符号
选择“符号”选项卡并添加...一个名称为 I_WANT_THIS_FEATURE 且值为 1 的新符号。
| 归档时间: |
|
| 查看次数: |
5993 次 |
| 最近记录: |