我使用Eclipse的一些C代码工作,它不是索引条件编译块内像这样的代码:我怎样才能获得的Eclipse里面的#ifdef指数代码.... #ENDIF
#ifdef USE_FEATURE_A
int feature_a(...) {
some = code(here);
}
#endif
如何获取eclipse以索引feature_a函数?
我使用Eclipse的一些C代码工作,它不是索引条件编译块内像这样的代码:我怎样才能获得的Eclipse里面的#ifdef指数代码.... #ENDIF
#ifdef USE_FEATURE_A
int feature_a(...) {
some = code(here);
}
#endif
如何获取eclipse以索引feature_a函数?
你可以告诉日食USE_FEATURE_A
已定义。打开你的项目属性,进入“C/C++常规 - >路径和符号”页面,在“符号”标签下单击“添加”按钮,并将USE_FEATURE_A
放入名称feild中,然后单击确定。
注意:这将导致它不会索引任何#else
双方到您的预处理器的东西......所以除非他们都像那个问题你不能AFAIK,但如果他们是他们,你是好的。 (Eclipse包含一个C预处理器,它用于分析代码,所有上面的东西基本上与向命令行添加-DUSE_FEATURE_A相同,因此Eclipse的预处理器将与编译器中的预处理器行为不同)
非常感谢你,你真的给了我几个小时的生活! – 2010-08-05 19:11:08
是的,这是一个解决方案,但远没有“用户友好”。 这是我的一个主要问题。绕过所有代码(尤其是其他代码)并搜索所有符号并将它们添加到项目属性是不现实的!我不明白为什么Eclipse不能有一个复选框来允许我们禁用索引/参考目的的预处理器... 与Visual Slick相比(我和我的同事们以前使用过),这是Eclipse的一个主要缺点。 (C/C++版本)。 – Rex 2012-12-07 11:45:30
唯一的问题是可能有几个定义。我的意思是几个... – Vetras 2013-02-28 11:30:07
它是什么值得,通过eclipse解析有条件编译的代码要比第一眼看起来要难得多。我在2007年发现了IBM的一篇论文,他们说他们将优先考虑“下一个版本”。
感谢您的信息。这正是我所寻找的。基本上,从Spudd86响应appart,没有办法获得eclipse来处理此代码。 – Vetras 2013-02-28 11:31:25
我有同样的问题,但通过预处理有条件淘汰的代码是完全合法的C代码,我想它格式化...这是我的解决方案:
1)全球查找/替换的的#if到#JUNKif
2)按Ctrl-Shift-F组合重新格式化源
3)另一种全球查找/替换#JUNKif的到的#if
这是一种更简单,在我看来,更优雅的解决方案选择作为解决方案之一:
如果有人有同样的问题(像我),这可以(?现在)很容易被去解决到窗口 - >首选项 - > C/C++ /索引器和启用“索引所有报头变量”。 然后点击Project-> C/C++ Indexer-> rebuild and clean and build您的项目。这应该解决来自预处理器命令的所有错误。
在Eclipse(Kepler)c/C++编辑器中标记下标记的代码的一种方法。
您可以在Eclipse编辑器中启用编译标志,以便它们下面的代码可以编入索引。
属性>预处理包括路径> CDT用户设置的条目
点击地址并添加预处理器宏,你可以指定它的值。
我猜想最好的方法是使用索引器选项:项目属性> C/C++常规>索引器。 您可以选择启用项目特定设置 我更喜欢选择“使用活动构建配置”,以便项目中实际构建的所有文件都被编入索引。 无论如何,你也可以选择索引项目中的所有文件,即使它们不包含在构建中...
你的意思是缩进吗? – IntelliChick 2010-06-26 04:03:28
索引,以便像“跳转到定义”和调用层次结构等功能可以工作。 – 2010-06-28 20:30:19