Eclipse/CDT编辑器在着色ifdef'ed out部分时没有选择项目定义的符号

Guy*_*Guy 15 eclipse eclipse-cdt

我看到的问题是,在首选项下,不同配置/目标的C/C++定义符号没有出现在代码着色中.

当我在项目菜单中更改活动的构建配置时,我希望编辑器和代码着色从项目设置中获取符号,但它似乎只是拾取其中一个目标的符号.

有没有办法让ifdef'ed代码的代码着色遵循活动的构建配置?

小智 21

我通过设置'Window-> Preferences-> C/C++ - > Indexer-> Use active build configuration'在我的系统上解决了这个问题

  • 谢谢.永远不会发现那个.我不得不刷新一些东西才能得到这个,但我不确定是什么.也就是说,它没有立即"采取",我尝试重建索引并重新应用符号,但这似乎不起作用.20分钟后,我注意到它正在工作.我不确定发生了什么.可能想重启eclipse,刷新缓冲区等. (2认同)

Joh*_*han 5

回应弗洛德的评论。将索引器设置更改为“使用活动配置”后,需要将项目的活动conf更改为其他名称,然后再更改。然后,它拾取更改。


Jos*_*ley 0

尝试使用项目的发现选项。(右键单击该项目,选择“属性”,转到“C/C++ 生成”下,然后选择“发现选项”。)

您可能需要在更改项目的构建配置后重建项目,以便 Eclipse 重新运行其发现,或者您可能需要更改每个配置的发现选项以使它们生成不同的结果。(抱歉,这不是我经常使用的 CDT 领域。)