*nix 环境中最好的 C++ IDE 是什么?我听说 Eclipse 的 C/C++ 模块和 Notepad++ 一样不错,但除了这两个之外我没有真正的想法。有什么想法或意见吗?
22 回答
在 Ubuntu 上,存储库中可用的一些 IDE 是:
还有:
当然,每个人都喜欢的基于文本的编辑器:
- vi/vim
- emacs
vim 和 emacs 确实是非常强大的工具,但是学习曲线非常陡峭。
我真的不太喜欢Eclipse,我觉得它有问题而且有点太笨重。
我已经开始使用Geany作为一个简单但功能强大且可用的IDE。它具有基本的代码完成功能,并且是一个漂亮、干净的 [Gnome] 界面。
Anjuta我试了一天,一点也不喜欢。我发现它不如 Geany 有用。
Kdevelop和code::blocks得到了很多好评,但我还没有尝试过。我使用 gnome,但我还没有看到在 gnome 中看起来不错的 KDE 应用程序(抱歉,我确信它是一个很棒的程序)。
如果在 linux 下只发布 Bloodshed dev-c++ 就好了。这是一个很棒的(但仅限 Windows)程序。你总是可以在 Wine 下运行它;)
在某种程度上,它归结为个人喜好。我的建议是研究 Kdevelop、Geany 和 code::blocks 作为起点。
作为一名在 linux 下编写代码多年的程序员,我似乎无法摆脱使用 Vim 编写代码。
一旦你学会了它,并学习了它的一些更高级的特性(代码折叠、如何使用 ctags、如何有效地使用多个缓冲区等),移动到另一个编辑器是非常困难的——因为其他所有东西似乎都缺少你的特性'习惯了。
唯一具有 vim 功能超集的编辑器是 emacs。我强烈建议学习其中的一个 - 如果您有任何问题,请不要犹豫,在这里或在 irc.freenode.net 上的 #emacs 或 #vim 中提问 - 有一个非常大且有用的社区可以帮助您了解哪些扩展或命令最适合您面临的软件编辑问题。
[编辑:评论指出“vim 不是 IDE”,我同意。我不喜欢 IDE 名称,因为它意味着一个带有项目经理和一堆下拉框的 gui。我喜欢使用术语“好工具”。请参阅Ted Leung关于此事的著作]
我会推荐CodeBlocks。
强调:
- 开源!GPLv3,无隐藏费用。
- 跨平台。在 Linux、Mac、Windows 上运行(使用 wxWidgets)。
- 用 C++ 编写。不需要解释语言或专有库。
- 可通过插件扩展
编译器:
- 多编译器支持:
- GCC (MingW / GNU GCC)
- MSVC++
- 数字火星
- Borland C++ 5.5
- 打开沃通
- ...和更多
我很惊讶没有人提到Qt Creator,因为它在大多数存储库中都可用,体积非常小,但可以很好地完成我需要的大多数事情。
我只使用 Emacs。
Emacs 是一款出色的、不受我限制但可以做任何事情的 IDE。请参阅其他相关问题:Using Emacs as an IDE
我的投票是KDevelop(我希望我有更多的分数,所以我可以“投票”,所以我可以间接地同意其他人而不是评论)。
我已经将 Eclipse 用于个人用途大约几年了,我说服自己“自从 IBM 捐赠了它,它一定很好”,但后来我发现了 KDevelop 并且从未回头。因为我很喜欢 Microsoft Visual Studio 的专业用途,所以 KDevelop 对我来说是最舒服的。
我想将编程作为一种爱好来享受,而不是花时间查找ctrl- k-k和ctrl- k-做了什么b。就像其他人提到的那样,任何对他们“感觉正确”的东西都是最好的 IDE。对我来说,KDevelop 感觉最舒服,因为我可以专注于编码(我可能会将键重新映射到其他 IDE 以使其感觉像 VS,但如前所述,我宁愿花时间编码,这更有趣)。
KDevelop很好,尤其是在您运行 KDE 时。作为额外的奖励,它支持多种语言。我发现它的嵌入式终端非常有用。
如果您来自 Windows 和 Visual Studio,您可能会发现 Code::Blocks 符合您的期望。
那是我的经验;我先尝试了其他几个,但他们似乎都希望我在开始做任何有趣的事情之前先做一个冗长的教程——而且要尝试十几个 IDE,这可能需要几天时间。
有了 Code::Blocks,我就没有什么难关了,而且在我提高工作效率之前,我几乎不需要学习什么强制性的东西。我还是更喜欢 Visual Studio,但是 Code::Blocks 可以打开我的 Visual Studio 项目,而且它似乎不想让我浪费任何时间,所以它对我来说是最成功的 *nix IDE。
我使用 NetBeans C++ 插件,它非常棒。我来自 Visual Studio 背景和 Netbeans 项目管理非常相似。我尝试了 KDevelop,但发现它有点不稳定(这是 12 个月前的事,所以现在可能更好了)。
我还为使用 KDevelop 的依赖关系而苦苦挣扎——即,一个程序需要首先构建大量的库——但 Netbeans 使这变得简单。
唯一的抱怨是,作为一个 Java 应用程序,它并不是特别快——在 VMWare 下运行时非常明显。
简单地说,Netbeans。你必须尝试一下。它是那么好。它比带有 CDT 插件的 Eclipse 好得多。
Netbeans 的 C++ 支持获得了一些不错的评价:http: //www.netbeans.org/features/cpp/
我从未使用 Netbeans 或 Eclipse 进行 C++ 开发,但值得一看。
在切换到 ubuntu 之前,我是 VisualStudio + VA-X 用户,并且需要在任何 IDE 中具有良好的自动完成和功能导航功能。
我尝试过 Netbeans、Eclipse CDT、CodeBlocks、Geany、Anjuta、KDevelop 并最终选择了 KDevelop,因为这是我最接近 VS+VA-X 的地方。
Eclipse 和 NetBeans 对我来说太重太慢了。大多数其他 IDE 都有错误/不完整/愚蠢的自动完成和其他功能;或者他们想要控制你的代码并且需要导入到项目中;或者他们将 101 个文件放在您的源文件夹中。只有 KDevelop 允许我有一个简单的链接到我的 src 文件夹并让我工作。自动完成并不出色,但比其他人更好。
KDevelop 不能很好地与我的 Gnome 融合,但我可以忍受它;)
就个人而言,我也同意 kDevelop 人群的观点。Eclipse 感觉有点笨重并且有点不稳定。关于 kDeveloper 的某些东西总是让人感觉不错。
终极++ [ http://www.ultimatepp.org/index.html]
[编辑]
它确实有自己的 C++ 类库(正如 Hernan 指出的那样),但没有什么能阻止您使用任何其他类库(如 SDL),或者您可以推出自己的。如果你愿意,你甚至可以使用 boost,但我必须说我发现一些提供的类和技术更有用。
我最欣赏的是它与调试器和非常完整的上下文相关编辑器的出色集成。它使用 Linux 上的标准编译器和调试器(gcc、g++、gdb)和该平台上的 MS 编译器/调试器。
我唯一的(非常小的)抱怨是项目的自制名称(称为 Nest 等)。这是不必要的,甚至可能会让认真的开发人员感到反感,但它们只是名字,我发现我很容易忽略它。
我之前问过这个问题来体验 Linux 用户,他们总是说 Vim 和 automake。我使用 Vim 作为我在 Linux 中的默认编辑器,一段时间后它变得直观。我在学习 C++ 的同时通过一些小例子来学习它,所以我可以同时学习两者。
在我以前的工作中,我们使用SlickEdit在 Debian 下进行 C++ 开发。它是跨平台的并且非常强大。
不过,它不是免费的。
大多数 IDE 的问题是他们希望对项目的组织方式有一定程度的控制,如果您必须与其他人一起处理该项目,这可能是个问题。根据我的经验,这会导致两个相关的问题:
如果您在特定的 IDE 中启动项目,他们会为您布局特定的目录结构、文件组织、文件命名约定、构建系统等。当然,这些选项中的大多数都是可自定义的,但并不总是可以遵守特定的您可能需要遵守的约定。具有复杂构建系统的项目可能难以在 IDE 中实现。此外,该项目可能不适合外部独立修改;例如,如果您打算编写一个开源应用程序,请避免将 IDE 作为项目的依赖项。
如果您导入从其他地方开始的项目,那么使用 IDE 提供的所有功能可能不是很容易。您必须弄清楚如何挂钩构建系统、调试器(因为二进制文件可能不是预期的)等。对于大型和复杂的项目尤其如此。
在 Windows 下这些都不是问题的原因是 Visual Studio 是事实上的标准。在 *nix 下,在协作开发项目时倾向于不强制使用特定的工具/编辑器,这就是出现这些“跨 IDE 通信”问题的原因。
最后一点,如果您学习 kdevelop 或 netbeans,如果有一天您必须在一台安装它们的机器上工作,您可能会遇到问题(例如,您可能没有可用的 Java 运行时并且您可能不被允许安装它)。如果你学习(比如说)Vim + 插件,你会更安全:你可以将你的配置作为 .zip 文件保存在你的网络服务器上,并且非常确定 Vim 将始终在任何地方可用。
我不能真正保证 Eclipse 模块,但这可能归因于我在 Windows 上并且几乎不知道我在做什么的事实。
不过,您最喜欢的文本编辑器不会出错。
Eclipse 还不错,但是您必须按照 Eclipse 的方式做事。Eclipse 有一些关于目录布局的内置想法。对于一个新项目,Eclipse 是一个合理的选择。将现有项目导入 Eclipse 可能需要进行一些重组。
我曾经在 QNX for C++ 下使用 Eclipse。QNX 的人实际上开发了 C++ 功能,所以 QNX 会有一个 IDE。
Emacs 适用于简单的事情,但我将 Eclipse 用于任何较大的项目。