适用于* nix的最佳C ++ IDE

适用于* nix的最佳C ++ IDE

Best C++ IDE for *nix

* unix环境中最好的C ++ IDE是什么? 我听说Eclipse的C / C ++模块和Notepad ++一样不错,但是除了这两个之外,我还没有真正的想法。 有什么想法或意见吗?


在Ubuntu上,存储库中可用的一些IDE是:

  • Kdevelop
  • Geany
  • 安朱塔

还有:

  • Eclipse(由于文件/文件夹权限问题,建议您不要从存储库安装)
  • 代码::块

当然,每个人都喜欢的基于文本的编辑器:

  • vi / vim
  • emacs

确实,vim和emacs是非常强大的工具,但是学习曲线非常陡峭。

我真的不怎么喜欢Eclipse,我发现它有错误,而且有点笨拙。
我已经开始将Geany用作基本工具,但可以使用且可用。它具有基本的代码完成功能,并且是一个很好的,干净的[Gnome]界面。
我尝试了一天的Anjuta,一点都不喜欢。我发现它没有Geany有用。

Kdevelop和code :: blocks获得了很多好评,但是我还没有尝试过。我使用gnome,但尚未看到一个在gnome中看起来不错的KDE应用程序(对不起,我确定它是一个不错的程序)。

如果只有流血的dev-c ++是在linux下发布的。那是一个很棒的(但仅限Windows)程序。您可以随时在Wine下运行它;)

在一定程度上,它取决于个人喜好。我的建议是研究Kdevelop,Geany和code :: blocks作为起点。


作为已经在linux下编写代码多年的程序员,我似乎无法摆脱使用Vim编写代码的想法。

一旦学习了它,并学习了它的一些更高级的功能(代码折叠,如何使用ctags,如何有效地使用多个缓冲区等),转移到另一个编辑器就非常困难-因为其他所有内容似乎都缺少您所拥有的功能习惯了。

唯一具有vim功能超集的其他编辑器是emacs。我强烈建议您学习一个或另一个-如果您有任何疑问,请不要犹豫在irc.freenode.net上的#emacs或#vim中提问-有一个非常有用的庞大社区,可以帮助您了解哪些扩展或命令最适合您面临的软件编辑问题。

[编辑:一条评论指出" vim不是IDE",我同意。我不喜欢IDE绰号,因为它意味着带有项目经理和一堆下拉框的GUI。我喜欢使用术语"好工具"。参见梁泰德的著作]


令我惊讶的是,没有人提到Qt Creator,因为它在大多数存储库中都可用,虽然体积很小,但是可以满足我的大部分需求。


我会推荐CodeBlocks。

强调:

  • 开源! GPLv3,无隐藏成本。
  • 跨平台。在Linux,Mac,Windows上运行(使用wxWidgets)。
  • 用C ++编写。不需要解释性语言或专有库。
  • 可通过插件扩展

编译器:

  • 多种编译器支持:

    • GCC(MingW / GNU GCC)
    • MSVC ++
    • 数字火星
    • Borland C ++ 5.5
    • 打开Watcom
    • ...和更多


我只是使用Emacs。


我的投票是KDevelop(我希望我有更多意见,以便我可以"投票",所以我可以间接地与他人达成共识,而不是发表评论)。

我已经将Eclipse用作个人用途已有大约两年了,说服自己"自从IBM捐赠了它,它一定是件好事",但是后来我发现了KDevelop,并且从不回头。因为我对Microsoft Visual Studio的专业使用非常满意,所以KDevelop使我感到最舒服。

我想享受编程的兴趣,而不是花时间查找ctrl-k-kctrl-k-b做什么。就像其他人提到的那样,对他们而言,任何"感觉正确"的东西都是最好的IDE。对我来说,KDevelop感到最舒服,因为我可以专注于编码(我可能可以将键重新映射到其他IDE,使它看起来像VS,但是如上所述,我宁愿投入时间编码,这更有趣)。


Emacs是一种出色的解决方案,可以按照我的方式使用,但是可以执行所有类型的IDE。参见另一个相关问题:将Emacs用作IDE


简而言之,Netbeans。您必须尝试一下。它是那么好。它比带有CDT插件的Eclipse更好。


我使用NetBeans C ++插件,它很棒。我来自Visual Studio,与Netbeans项目管理非常相似。我尝试了KDevelop,但发现它有点片状(这是12个月前的事,所以现在可能会更好)。

我还使用KDevelop来解决依赖关系问题-即程序需要首先构建大量库-但是Netbeans使这一点变得简单。

唯一的抱怨是,作为Java应用程序,它并不是特别快-在VMWare下运行时非常明显。


如果您来自Windows和Visual Studio,则可能会发现Code :: Blocks符合您的期望。

那是我的经验;我首先尝试了一些其他方法,但是他们似乎都希望我做一个漫长的教程,然后才能开始做任何有趣的事情-并且要尝试十二个IDE,这可能需要几天的时间。

有了Code :: Blocks,就没有障碍了,在我变得富有成效之前,几乎没有必要学习强制性知识。我仍然更喜欢Visual Studio,但是Code :: Blocks可以打开我的Visual Studio项目,而且似乎不想让我浪费任何时间,因此它是我最成功的* nix IDE。


在切换到ubuntu之前,我是VisualStudio + VA-X的用户,并且在任何IDE中都需要良好的自动完成功能和功能导航功能。

我尝试过Netbeans,Eclipse CDT,CodeBlocks,Geany,Anjuta,KDevelop,最终选择了KDevelop,因为那是我最接近VS + VA-X的地方。

Eclipse和NetBeans太笨拙,以我的口味而言。其他大多数IDE都具有错误/不完整/哑自动完成及其他功能;或者他们想控制您的代码并且需要导入到项目中;或者他们将101个文件放在您的源文件夹中。只有KDevelop允许我有一个指向我的src文件夹的简单链接,并允许我工作。自动完成不是很出色,但是比其他的要好。

KDevelop与我的Gnome融合不佳,但是我可以忍受;)


Netbeans的C ++支持获得了不错的评价:http://www.netbeans.org/features/cpp/

我从未使用Netbeans或Eclipse进行C ++开发,但是值得一看。


KDevelop非常好,特别是如果您运行KDE。它支持多种语言,这是额外的好处。我发现它的嵌入式终端非常有用。


我真的很喜欢CodeLite。查看它的功能页面。


就个人而言,我也同意kDevelop人群。 Eclipse感觉有点笨重,并且有些不稳定。关于kDeveloper的某些事情总是会感觉正确。


Ultimate ++ [http://www.ultimatepp.org/index.html]

[edit]
它确实具有自己的C ++类库(如Hernan所指出的),但是没有什么可以阻止您使用其他任何类库(例如SDL),也可以滚动自己的类库。如果愿意,您甚至可以使用boost,但是我必须说,我发现提供的一些类和技术更有用。

我最欣赏的是它与调试器的完美集成以及非常完整的上下文敏感的编辑器。它使用Linux上的标准编译器和调试器(gcc,g ++,gdb)和该平台上的MS编译器/调试器。

我唯一(非常小)的抱怨是自制名称项目(称为Nest's等)。这是不必要的,甚至对于认真的开发人员而言可能会令人反感,但它们只是名字,我发现我可以轻易忽略它。


我之前曾问过这个问题,以体验Linux用户,他们总是说Vim和automake。我将Vim用作Linux中的默认编辑器,过了一会儿它变得直观了。我在学习C ++时通过一些小例子来学习它,因此我可以同时学习两者。


大多数IDE的问题在于它们希望对项目的组织方式有一定程度的控制,如果您必须与其他人一起从事该项目,则可能会遇到问题。以我的经验,这会导致两个相关的问题:

  • 如果您在特定的IDE中启动项目,它们将为您布置特定的目录结构,文件组织,文件命名约定,构建系统等。当然,这些选项大多数都是可自定义的,但并非总是可以遵循特定的可能需要遵循的约定。具有复杂构建系统的项目可能很难在IDE中实现。此外,该项目可能不适合外部独立修改。因此,例如,如果您打算编写一个开源应用程序,请避免使IDE成为项目的依赖项。

  • 如果导入从其他位置开始的项目,则可能很难使用IDE提供的所有功能。您将必须弄清楚如何挂接构建系统,调试器(因为二进制文件可能不在预期的位置)等。这对于大型和复杂的项目尤其如此。

在Windows下这些不是问题的原因是Visual Studio是事实上的标准。在* nix下,有一种趋势是在协作开发项目时不强加特定的工具/编辑器,这就是为什么出现这些"跨IDE通信"问题的原因。

最后要说明的是,如果您学习例如kdevelop或netbeans,如果有一天您必须在一台安装有问题的机器上工作,则可能会遇到问题(例如,您可能没有Java运行时并且可能被禁止使用)安装)。如果您学习(说)Vim +插件,那么您会更安全:您可以将配置作为.zip文件保存在Web服务器上,并确保Vim在任何地方都始终可用。


在我以前的工作中,我们在Debian下使用SlickEdit进行C ++开发。它是跨平台的,功能非常强大。

它不是免费的。


Emacs适用于简单的事情,但是我将Eclipse用于任何较大的项目。


我不能真正保证使用Eclipse模块,但这可能归因于我在Windows上并且几乎不知道我在做什么的事实。

但是您喜欢的文本编辑器不会出错。


Eclipse不错,但是您必须按照Eclipse的方式进行操作。 Eclipse有一些关于目录布局的内置想法。对于新项目,Eclipse是一个合理的选择。将现有项目导入Eclipse可能需要进行一些重组。

我曾经在QNX for C ++下使用Eclipse。 QNX人员实际上开发了C ++功能,因此QNX将具有IDE。


推荐阅读