13

我已经使用omniCppComplete + ctags 有一段时间了,想进一步改进代码完成。

根据此处 [ 1 ] 中的建议,gccsense 和 clang_complete 似乎是替代品。但是,我不确定哪个更好。对他们的表现有任何想法吗?
谢谢!

更新:我试过clang_complete后,发现完成速度极不可接受。然后我使用 libclang.dylib 进行了尝试,它加快了很多,但仍然让人感觉滞后。我想我现在应该坚持使用 ctags。

4

2 回答 2

21

您可能应该使用 clang_complete,而不是 gccsense。

这里的重点是两者的架构。这两种解决方案背后的想法非常相似:如果不访问内部编译器 (gcc) 信息(抽象语法树),您将无法获得正常的 C++ 完成,而 gcc 没有为此提供足够的接口。虽然访问此信息的实现部分在这里完全不同:gccsense 是一种“hack” - 它是 gcc 的自定义构建,能够存储必要的信息以便进一步将其提供给插件,而 clang_complete 则通过使用另一种方式编译器:clang,其创建的主要目标之一正是使外部工具可以轻松访问 AST。

因此,在使用 gccsense 的情况下,您需要使用一种自定义的 gcc 编译器来编译您的代码,该编译器现在已经有点过时了(gccsense 使用的是 gcc 4.4)并且将不断需要开发人员的功能支持。相反,clang_complete 并不太依赖 clang 编译器,它使用它作为外部工具。

至于性能:再一次,clang 被设计为比 gcc 更快,而且确实如此。Clang_complete 在 Windows 上可能比在 MacOS/Linux 上稍慢,但是 gccsense 当时甚至不能为 Windows 编译。

于 2011-04-01T19:51:30.847 回答
2

GCCsense 可以在 Windows 上构建。在此处查看我对 gcc 4.5.2 的补丁: http ://forums.codeblocks.org/index.php/topic,13812.msg94824.html#msg94824

我承认 gccsense 只是 gcc 的一个 hack,但是 clang 从一开始就有更好的设计。

我希望任何人都可以改进 gcc/gccsense。

于 2011-09-01T06:28:57.093 回答