Netbeans或Eclipse用于C++?

38

我目前正在开发一个个人项目,需要在Windows、Mac、Linux和Solaris上进行C++开发,我已经将选择范围缩小到了Netbeans和Eclipse,因此我想知道哪个更适合作为C++编辑器。我只需要稳定的编辑、良好的模板代码和外部库的自动完成功能以及项目文件管理,生成工具是外部的,因此在我的比较中不相关。

那么哪个才是更好的选择呢?

注:我知道我应该使用emacs或vim,但问题是,至少在我的理论中,我是左撇子,所以我更多地使用右脑(设计、创造力),而非左脑(逻辑、记忆),所以我根本无法使用emacs或vim,我的大脑根本不兼容,我尝试过很多次,甚至使用了几个月的emacs,但它让我发疯了...

谢谢


11
额...我是左撇子,有创造力,对Emacs毫无问题。 - T.E.D.
Eclipse C++ 构建代码非常慢,但当我切换到 Netbeans 时,它的构建速度就像在 Eclipse 中编译 Java 一样快。 - Duc Tran
2
很好的vim/emacs挡住了;)这真聪明! - Offirmo
13个回答

28

我没有使用过NetBeans,但是Eclipse CDT(C Developer Tools,包括C++)特别是最新版本,非常出色:

  • 语法检查和拼写检查
  • 语法高亮支持库函数调用和函数调用之间的区分,支持本地变量和成员变量的区分,甚至应用于被 #ifdef 掉的代码
  • 宏展开可以逐级步进,也可以显示非常复杂的 Boost 预处理器宏的最终结果
  • 文件和类大纲视图会动态更新以显示您在文件中的位置。 (我使用过的商业 IDE 无法做到这一点。)
  • 强大、灵活的查找/替换和在文件中查找功能,完全支持Perl风格的正则表达式。它还应该能够执行基于语言语义的 C/C++ 文件查找(例如,只查找引用而不是声明),尽管有时对我来说这不起作用。
  • 自动跟踪 TODO 和其他评论标签
  • 鼠标悬停提示可以显示变量或函数的确切声明,包括任何注释,而不仅仅是变量或函数的声明位置。(再次说一遍,我使用过的商业 IDE 无法做到这一点。)
  • 通过插件支持 Subversion、Doxygen 等
  • 一些重构支持——重命名、提取常量、提取函数、其他几个
  • 代码重新格式化器,基于用户可定义的代码样式

您特别问了它的编辑器;Eclipse 的编辑器足够好,以至于每当我不需要商业 IDE 的表单设计器时,我都会优先使用它。

Eclipse 的调试器集成(使用 gdb)尚可,但并非非常出色,它的内存使用率很高。一些功能(例如 C/C++ 文件查找)不可靠或需要重新索引(这很耗时),原因不明,但最新版本在这方面似乎更加可靠。

有没有用过 NetBeans 的人来比较一下呢?


1
目前来说Eclipse + CDT在C++开发方面非常出色。特别是编辑器,它真的很棒,而且Emacs绑定使得老手可以轻松切换并保持高效率。 - Mark Kegel
刚试了一下两个,我的选择是五分钟内就决定用Eclipse的文件/类导航器和语法检查。此外,Eclipse的构建->检查循环似乎比Netbean的快(<-使用X?)。 - Robert Gould

16

我偶尔在Solaris操作系统上使用Netbeans,最新版本(6.5)非常不错。它拥有你需要的所有功能,也许自动完成可以更好些,但我的代码库很糟糕,所以可能是由于这个原因。请记住,你需要一台性能强劲的机器来运行它,如果你使用的是你的个人电脑那就没问题,但是如果你在远程服务器上使用Netbeans(像我一样尝试过),除非你有足够良好的硬件设备,否则它会变得非常慢。还有几个简单的C++重构选项,有很好的预览功能,绝对值得一试。

你可以从这里获取整个Sun C ++套件:http://developers.sun.com/sunstudio/downloads/express/


它没有创建项目的功能,然后将其链接到其他地方的src文件夹。或者至少我没有找到它。 - Offirmo

13

在我看来,它们都很臃肿且速度慢。为什么不尝试使用 Code::Blocks 呢?它专门面向C++开发人员,比Eclipse或NetBeans表现更好。


1
我喜欢Code::Blocks的前身Bloodshed,并在几年前尝试过Code::Blocks,但当时它不像现在这么酷。不幸的是,它对MacOS的支持仍然很弱。 - Robert Gould
6
@Hoffmann: 垃圾。 - quant_dev
7
@Hoffman:错误的 :) 你看过IntelliJ IDEA吗?它是用Java编写的,比Code::Blocks(用C++编写)运行得更快。而且它甚至拥有更多的功能... - Zippo
啊哈,而且它的C++支持是实验性的。 - Brian Cannard
1
@Zippoxer Code::Blocks比Intellij IDEA、Eclipse和Netbeans加起来要快得多(至少在我的经验中;它们甚至无法接近)。 - icedgoal

12

就个人而言,我更喜欢NetBeans - 它的项目管理非常出色,让我比使用Eclipse更快地开始工作。然而,这是主观的,结果可能因人而异。


我也注意到了。你可能想尝试一个简化版本的Eclipse,看看是否有所帮助。http://www.eclipse.org/callisto/c-dev.php - Bill the Lizard

7

针对Eclipse/Netbeans速度或性能问题的评论,笔者想发表一些看法:

如果一个IDE太慢,唯独编辑器组件会让人感到不爽。与此形成鲜明对比的是,我发现Eclipse的编辑器组件非常流畅,相当迅速。

虽然有些人在此肤浅地宣称,但Eclipse编辑器的性能表现却是极为出色的。相比之下,该IDE的其他部分则容易出现卡顿等问题。

我用一台1.4GHz的笔记本电脑来运行Eclipse,其编辑器组件比Code::Blocks或KDevelop更快,尤其是在滚动/浏览文本时。简单来说,这是因为Eclipse缓存了所有内容(尤其是语法高亮等),而其他IDE似乎试图在“实时”进行缓存而失败了。

在过去的版本中,C++索引器曾经成为问题所在。当内存不足时,它会崩溃,导致所有的搜索功能都无法使用。但对于目前的版本,我只能说:所有问题都已解决,它的表现就像VisualStudio Indexer一样快。

在安装Eclipse CDT后,你将获得大量不错的功能,正如其他回复中所解释的那样。而其他大多数IDE只能通过多个插件提供这些功能。(我不知道Netbeans,因为没用过)

每当我悬停在某个标识符上时,最令我惊叹的功能是智能工具提示。Eclipse直接给我提供了任何可能被输入的javadoc,并显示定义它的文件,甚至还可以在工具提示内部滚动!因此,我随时可以访问每个标识符的完整上下文。

总之,虽然IDE中其他操作可能会更快,但对我而言,关键是编辑器快速,而Eclipse在这方面表现确实出色。


3
如果您在Linux下运行eclipse,则可以使用valgrind来检测内存泄漏。对于我来说,Eclipse对gdb的支持已经足够好了,但我找不到一个像样的内存泄漏插件,而valgrind集成插件还处于测试版。这篇博客为此提供了很好的教程:http://kapo-cpp.blogspot.com/2007/02/detecting-memory-leak.html。我支持在Linux上使用eclipse。附言:真正的男人只用ed。

3
我唯一不喜欢Netbeans的是它的调试器相对于Eclipse来说有点慢。除此之外,Netbeans将是我的选择。

是的,构建->调试似乎非常缓慢。我真正喜欢的一件事是快速迭代,所以这是Netbeans的弱点。 - Robert Gould

2

Code::Blocks中的C++解析器似乎与NetBeans和Eclipse不相上下:根据Code::Blocks的维基,它需要完全重写。


2

它们都非常适合C++开发,但最近我发现NetBeans缺少一个可用于CppUnit或任何其他C++单元测试框架的插件。如果我对此错误,请在这个问题上给我更多回复。

(另外,我知道NetBeans的开发一直在进行中,所以也许很快就会有人想出一个插件。)


1

对于C ++,我必须同意Nemanja Trifunovic的观点,并建议您看看Code :: Blocks。它是免费的,并且性能非常出色。几年前,我从Bloodshed Dev-C ++(基本上不再受支持)切换后开始使用它,感到非常满意。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接