37

我目前正在做一个宠物项目,需要在 Windows、Mac、Linux 和 Solaris 上进行 C++ 开发,我已经将其范围缩小到 Netbeans 和 Eclipse,所以我想知道哪个作为 C++ 编辑器更可靠。我只需要可靠的编辑,模板代码和外部库的良好自动完成功能,以及项目文件管理,构建工具是外部的,所以这里无关紧要,用于我的比较。

因此,哪个是更好的选择?

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

谢谢

4

13 回答 13

27

我没有使用过 NetBeans,但 Eclipse CDT(C 开发者工具,包括 C++),尤其是最新版本,确实非常出色:

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

您专门询问了它的编辑器;Eclipse 编辑器足够好,当我不需要商业 IDE 的表单设计器时,我会优先使用它而不是商业 IDE。

Eclipse 的调试器集成(使用 gdb)可以忍受但不是很好,而且它的内存使用率很高。一些功能(例如 C/C++ Find in Files)不能可靠地工作或需要重新索引(这很耗时),但没有明显的原因,但最新版本在这方面似乎更可靠。

使用过 NetBeans 的人可以填写比较吗?

于 2008-11-21T12:51:33.150 回答
16

我不时在 Solaris 上使用 Netbeans,最新的 (6.5) 版本非常简洁。它具有您需要的所有功能,也许自动完成功能可以更好地工作,但我的代码库非常糟糕,所以它可能是它的结果。请记住,您需要强大的机器,如果它是您的 PC,那没关系,但远程服务器上的 Netbeans(就像我尝试过的那样)真的很慢,除非您拥有不错的硬件。很少有针对 C++ 的简单重构以及不错的预览选项,绝对值得一试。

您可以从这里获得完整的 Sun C++ 包:http: //developers.sun.com/sunstudio/downloads/express/

于 2008-11-21T11:36:47.590 回答
12

就我个人而言,我更喜欢 NetBeans - 项目管理非常好,而且我的启动和运行速度比 Eclipse 快。但是,它是主观的和 YMMV。

于 2008-11-21T11:58:25.207 回答
12

恕我直言,它们既臃肿又缓慢。你为什么不试试Code::Blocks呢?它专门针对 C++ 开发人员,性能比 Eclipse 或 NetBeans 好得多。

于 2008-11-21T14:18:20.353 回答
7

只是为了给关于 eclipse/netbeans 的速度或性能问题的评论提供 2 美分:

如果 IDE 很慢,唯一糟糕的部分是编辑器组件。与这里的一些明显肤浅的断言相比,我发现 Eclipse 中的编辑器组件非常活泼。IDE 的其余部分容易出现滞后,但编辑器本身提供了无可挑剔的性能。我有一台 1.4GHz 笔记本电脑并使用 Eclipse。Eclipse 的编辑器组件比 Code::Blocks 或 KDevelop 更快(尤其是在滚动/浏览文本时)。这样做的简单原因是:Eclipse 缓存所有内容,尤其是语法高亮等,其他 IDE 似乎试图“实时”执行此操作并失败。在过去的版本中,c++ 索引器是造成问题的原因。它在内存不足时崩溃,没有它,任何漂亮的搜索功能都不起作用,等等。对于当前版本,我只能说:它都是固定的,它就像一个魅力。它'

如果您安装 Eclipse CDT,您将获得很多不错的功能,正如其他回复中已经解释的那样,大多数其他 IDE 仅提供多个插件。(我不了解netbeans,从未使用过它。)每次都让我兴奋的功能是当我将鼠标悬停在某个标识符上时的智能工具提示。Eclipse 让我可以直接访问可能在某处输入的任何 javadoc 以及定义它的文件,甚至可以让我在工具提示中滚动!因此,我随处可得每个标识符的完整上下文。我更喜欢它而不是 Visual Studio 以及我尝试过的几乎所有其他东西。

诚然,您在 IDE 中执行的其他所有操作都可能更快捷。对我来说,最重要的是,编辑器速度很快,而且 eclipse 的工作做得很好。

于 2010-05-24T12:35:24.567 回答
3

我唯一讨厌 Netbeans 的是调试器与 Eclipse 相比有点慢。除此之外,Netbeans 将是我的选择。

于 2008-11-21T15:49:17.563 回答
3

如果你在 linux 下运行 eclipse,你可以使用 valgrind 来解决内存泄漏问题。Eclipse 对我来说足够好地支持 gdb,但我找不到像样的内存泄漏插件,而 valgrind 集成插件处于测试阶段。这个博客为它做了一个很棒的教程:http: //kapo-cpp.blogspot.com/2007/02/detecting-memory-leak.html。我在 linux 上为 eclipse 投了票。PS 真正的男人只使用 ed。

于 2011-05-02T02:03:55.293 回答
2

code::blocks 中的 c++ 解析器似乎无法与 netbeans 和 eclipse 相提并论:根据code::block 的 wiki,它需要完全重写。

于 2009-11-22T19:10:36.710 回答
1

它们都非常适合 C++ 开发,但我最近发现 NetBeans 中缺少的一件事是似乎没有可用于 CppUnit 或任何其他 C++ 单元测试框架的插件。如果我错了,我很想得到对这个问题的更多回答。

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

于 2008-11-21T13:00:26.050 回答
1

对于 C++,我不得不同意 Nemanja Trifunovic 并说你应该看看Code::Blocks。它是免费的,并且具有出色的性能。几年前,我从 Bloodshed Dev-C++ (基本上不再支持)切换后开始使用它,并且非常高兴。

于 2008-11-21T14:30:13.933 回答
1

我是 Eclipse 的忠实拥护者,并已将其广泛用于 Java 和 C++ 编程。但是,目前,它不支持远程 C++ 开发。我尝试了 Netbeans Remote C++ 开发,发现它非常出色且非常简单。话虽如此,C++ 解析不如 Eclipse 流畅,自动完成有时会妨碍并且不会消失,而我遇到的最大问题是由于性能非常缓慢而需要不断地重新启动 IDE。我希望Eclipse可以继续构建它的Remote C++开发能力,并以Netbeans为例说明如何让它变得非常简单!

于 2011-11-10T13:33:14.570 回答
0

使用 eclipse 有一段时间了,我最近看了 netbeans,必须说我非常喜欢它。归根结底,它们都是极好的想法,这是一个非常主观的选择。在我看来,netbeans 似乎比 eclipse 快一点,但这可能只是一种感觉。

于 2008-11-21T12:56:43.060 回答
0

到目前为止,我一直在使用 Net Beans。但由于 NetBeans 中的问题,我被迫切换到 Eclipse。当您处理具有大量源文件的项目时,有一个 Net Beans 错误会导致 IDE 无用。许多人一直在抱怨,但似乎 Net Beans 团队无法解决导致 IDE 在解析源文件时无法响应的问题。:(

报告于: Petr Dvorak - Oracle 博客

作为一种解决方案,他们提供了一种对我不起作用的按需解析机制:( Net Beans Wiki

于 2011-09-08T09:40:22.797 回答