我怎样才能让Eclipse在#ifdef .... #endif中编入索引代码

Art*_*ldt 28 c eclipse indexing

我正在使用eclipse来处理一些c代码,它不是像这样在条件编译块中索引代码:

#ifdef USE_FEATURE_A
int feature_a(...) {
   some = code(here);
}
#endif
Run Code Online (Sandbox Code Playgroud)

如何让eclipse索引feature_a函数?

Spu*_*d86 32

你可以告诉USE_FEATURE_A定义的eclipse .打开项目属性并转到"C/C++ General-> Paths and Symbols"页面,在"Symbols"选项卡下单击"Add"按钮并USE_FEATURE_A输入名称feild,然后单击OK.

注意:这将导致它不会将#else预处理器内容的任何一侧编入索引...所以除非它们都像有问题的那样你不能AFAIK,但如果它们是你那么你就是好的.(Eclipse包含一个用于分析代码的C预处理器,上面的所有内容与将-DUSE_FEATURE_A添加到命令行基本相同,因此Eclipse的预处理器的行为与编译器中的预处理器不同)

  • 非常感谢你,你真的把我的生命还给了我几个小时! (3认同)
  • 是的,这是一个解决方案,但远非"用户友好".这对我来说是一个主要问题.绕过所有代码(尤其是来自其他代码的代码)并搜索所有符号然后将它们添加到项目属性中是不切实际的!我不明白为什么Eclipse没有复选框允许我们禁用预处理器以进行索引/引用...与Visual Slick(我和我的同事以前使用过)相比,这是Eclipse的一个主要缺点.(C/C++版). (2认同)