【问题标题】:As of 2011: Netbeans 7 or Eclipse Indigo for C++?截至 2011 年:Netbeans 7 或 Eclipse Indigo for C++?
【发布时间】:2011-09-29 18:38:51
【问题描述】:

这基本上是以下内容的副本: Netbeans or Eclipse for C++?

但是,这个问题已经问了 3 年多了,从那以后发生了很多变化。

我有一个带有自定义(但基于 Makefile)构建系统的大型代码库。我特别想知道的领域包括:

  1. 语法高亮
  2. 代码导航。
  3. 代码提示。
  4. “ReSharper 风格”代码助手。
  5. 文档集成。
  6. 调试器 UI 和功能。

有没有人有机会评估 Netbeans 和 Eclipse?

编辑:作为后续问题,鉴于 Oracle 最近在“开放”努力方面的糟糕历史,这里的任何 Netbeans 用户是否关心其未来? (开放式 Solaris、MySQL、开放式办公)

谢谢

【问题讨论】:

  • 很高兴听到使用 QtCreator 和 Code::Blocks 的经验
  • fwiw,我使用了最新的 QtCreator。真的很不错,但仍然需要成熟一点才能在大型 c/c++ 项目中使用。
  • 对于 C++,我不会/不使用它们中的任何一个。当我真的觉得我需要使用调试器时,我有时会使用 QtCreator,因为我不太擅长 gdb 的命令行输出。否则我使用vim。 Code::Blocks 现在看起来也不错。
  • 我不会评论 NetBeans 在 c++ 方面的可用性,因为我没有太多经验。关于 NetBeans 的未来,我认为没有太多可担心的因为 NetBeans 和 JDeveloper 团队似乎正在努力实现代码共享。它已经在某种程度上作为JDeveloper actually runs on NetBeans 的最后一个版本开始了。有关更多信息,请参阅 JDeveloper 上的 Jaroslav Tulachs 条目
  • @Aditya:图形 gdb 在 Eclipse 中运行良好。 Visual Studio 内置了图形调试器。不确定我是否关注您的评论。

标签: c++ eclipse netbeans ide eclipse-cdt


【解决方案1】:

我无法对 Netbeans 发表评论,但我可以为您提供有关 Eclipse 的信息。我在 UNIX 系统上使用 C++,在探索我知之甚少的大型代码库时,我已经开始使用 Eclipse。我不使用它来构建,但是将我们的构建系统与它集成起来很容易,因为只需要命令。

Eclipse 拥有您正在寻找的大部分内容:(我说的是 Eclipse/CDT)

  1. 您不仅可以完全自定义语法高亮,还可以使用模板格式化代码。我的公司有一个用于函数和条件代码的间距、制表符和格式的代码标准,我不费吹灰之力就能修改现有模板以满足我们的代码标准。

  2. 导航还不错,如果您突出显示并将鼠标悬停在变量上,它会在一个小的弹出气泡中显示定义。如果你对一个类型做同样的事情,它会告诉你类型是在哪里定义的。对于函数,它将显示函数实现的前几行,并带有展开它并查看整个函数的选项。我发现所有这些都非常适合代码发现和导航。您还可以突出显示变量,并使用右键单击菜单选项跳转到其声明。

  3. 我想通过代码提示您指的是诸如智能感知之类的东西?这是我在查看大型代码库时使用 Eclipse 的主要原因。只需点击“。”或'->',一秒钟后你得到你的选择。

  4. 调试器 UI 非常强大。您可以在该工具中启动 gdb,它允许您像在 ddd 或 Visual C++ 之类的工具中一样以图形方式移动代码。它提供标准功能,例如查看寄存器、内存、查看变量等。

话虽如此,我发现了一些弱点。首先是它并不能很容易地支持 CVS 和 SVN 之外的版本控制系统(集成到 GUI 中)。我为我们在公司使用的系统找到了一个插件,但它会产生 XML 和 Unicode 垃圾。在命令行上使用修订控制更容易。我怀疑这是插件的问题,而不是 Eclipse。我希望有更好的工具集成。

第二个抱怨是,对于每个项目,我必须手动设置包含目录和库路径。也许使用环境变量可以规避?或者我可能只是不知道如何正确设置。再说一次,如果开发人员不清楚如何做到这一点,我认为这是该工具的一个弱点。

总而言之,我喜欢使用 Eclipse。它不是我的主要编辑环境,但我很欣赏它处理大型代码库。

【讨论】:

  • 包括目录和库路径.... 据说 pkg-config 支持应该已经在最新版本中工作了,但我还没有尝试过stackoverflow.com/questions/3816492/…
  • 根据我的经验,它完全支持 Git、Perforce(集成到 GUI“团队”上下文菜单中)
  • 很高兴了解 Git。在我的办公室,bazaar 是源代码控制软件,不幸的是,bazaar 的插件不能很好地工作。
【解决方案2】:

我不能对 eclipse 发表评论,但在 netbeans 7 上,我会说一些对我来说非常重要并且到目前为止效果很好的东西:

  • 代码完成,转到声明
  • pkg-config 自动包含解析管理

有时有效有时无效的东西

  • 查找用法,有时可能无法在其他打开的项目中查找用法
  • 调试器有时会与 unittest-cpp 宏混淆,它不会在适当的行上运行

还没有工作的东西,我非常关心:

  • C++0x 语法高亮显示(自动、lambda、枚举类、可变参数模板,内置解析器均无法识别)

那些不太有效但我不在乎的东西:

  • git 集成。我喜欢从命令行使用 git,所以这不是问题

总之,IDE 非常实用。我希望有机会在 Indigo Eclipse 上试用最新的 cdt,但到目前为止我还没有太多真正的理由去调查

【讨论】:

  • 谢谢。如果您有机会尝试 Eclipse Indigo,我想听听您的想法。
  • Eclipse Indigo 似乎对 C++0x 有很好的支持,我认为是 gcc v4.5(但还不是 4.6):
  • 有一个插件,nbgit,它提供了一些基本的 git 支持,比如差异突出显示和历史浏览。但它不能代替命令链接。
【解决方案3】:

一个让我对 Netbeans 7.0 非常不满的特殊问题是它倾向于使用 utf8 文件,而且并非所有的 c++ 项目都是 utf8。它将发出有关打开此类文件的警告,如果您打开它,则会损坏该文件,这很痛苦。

我还没有找到如何正确地让 netbeans 处理这个问题。显然编码可以改变,但对于整个项目。所以大概把它改成 us-acii 就可以解决这个问题了,虽然非 ascii 字符不能正常显示。

【讨论】:

    【解决方案4】:

    我是 Netbeans 的忠实粉丝。我和你的情况类似,但是创建项目非常容易。只需将 Netbeans 指向检出代码的位置,它就会自行计算出大部分内容。我很少需要做任何配置。不过需要注意的一点是,如果您的树非常大,则可能需要一些时间才能完全索引 - 这样做时,内存和 cpu 将被占用。

    与 cvs 的集成很棒,而 Hudson 的集成对于 CB 来说非常酷。我自己没有使用过 Git,但我应该认为这是不费吹灰之力。

    有一点让我很恼火,那就是它在代码严重依赖模板时表现不佳。即显示大量关于未找到类型等的警告和错误。

    我没有使用过最新版本的 Eclipse,我在当前版本之前尝试了主要版本并放弃了,因为它没有与 makefile 等相同的平滑项目集成。我发现如果你不使用它就不那么好了'不想使用它的 make 系统 - 尽管我可能是错的。

    我不使用提供的任何代码格式,而是更喜欢 AStyle 之类的东西。我知道 NetBeans 在 Java 方面做得很好——但还没有将它用于 C++。 CDT 我似乎记得在格式化 C++ 代码时用缩进做了一些奇怪的事情——尤其是。如果涉及模板 - 但那至少是两年前的事了。

    希望其中的一些帮助 - 最好的方法是下载并亲自尝试,看看哪些对你有用。我们告诉您的任何内容都纯属主观。

    【讨论】:

      【解决方案5】:

      我曾经用 MinGW 和 Netbeans 一起工作,我刚试过 7.0.1。 我目前将 Eclipse Indigo 与 CDT 和 MinGW 一起使用 - 它的性能更好(更少的 CPU 和内存)。

      Netbeans 创建一个 makefile 来一直编译, 在 Eclipse 中,您可以直接使用 CDT-Toolchain 构建或使用 Makefile - Eclipse 更灵活。

      调试:Netbeans 在 Solaris/Linux 中可能会更好。

      我个人比较喜欢 eclipse 而不是 Netbeans,我觉得 eclipse 更专业。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        • 2012-09-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多