我想在 Ubuntu 上的 Eclipse indigo 上使用我的 CDT 索引器 8.0.2 对我的 C/C++ 源文件中的每个 #ifdef 和 #else 块进行索引。
添加符号不起作用,因为它不会覆盖 #else 块
有什么方法可以强制 Eclipse CDT 简单地忽略 #ifdef 和 #else 块?像其他索引器一样(如 emacs cscope)
我一直在寻找几天,并没有找到任何好的解决方案。
我有大量代码,最好不要编辑它以删除#ifdefs,即使是临时的。
我想在 Ubuntu 上的 Eclipse indigo 上使用我的 CDT 索引器 8.0.2 对我的 C/C++ 源文件中的每个 #ifdef 和 #else 块进行索引。
添加符号不起作用,因为它不会覆盖 #else 块
有什么方法可以强制 Eclipse CDT 简单地忽略 #ifdef 和 #else 块?像其他索引器一样(如 emacs cscope)
我一直在寻找几天,并没有找到任何好的解决方案。
我有大量代码,最好不要编辑它以删除#ifdefs,即使是临时的。
最简洁的答案是不。CDT 预处理器不是这样工作的。它遵循正确的语义,这意味着它只解析#ifdef 的一个分支。Emacs 可能会进入每个分支,但它没有进行像 CDT 那样正确或完整的分析。
您唯一的选择是设置配置为解析每个分支的多个构建配置。然后,当您想在不同的分支中工作时,您可以切换构建配置。这远非理想,因为设置起来可能很耗时,并且每次切换时都会触发重新索引。(您还必须对其进行配置以进行重新索引,转到 Window > Preferences > C/C++ > Indexer 并选择“Use active build configuration”)
请注意,CDT 解析器将解析非活动 #else 分支内部,只是为了找到要在大纲视图中显示的声明。