209

我想将我的编程视野扩展到 Linux。一个好的、可靠的基础工具集很重要,还有什么比 IDE 更基础的呢?

我可以找到这些 SO 主题:

我不是在寻找轻量级的IDE。如果 IDE 物有所值,那么我会为它买单,所以它不一定是免费的。

那么我的问题是:

有什么好的 C++ 编程 IDE 可用于 Linux?

最低要求是相当标准的:语法突出显示、代码完成(如智能感知或其 Eclipse 对应物)和集成调试(例如,基本断点)。

我自己也搜索过,但是太多了,几乎不可能手动区分好坏,尤其是对于像我这样在 Linux 中几乎没有 C++ 编码经验的人。我知道Eclipse 支持 C++,我真的很喜欢 Java 的 IDE,但它对 C++ 有什么好处吗?还有更好的吗?

第二篇文章实际上有一些很好的建议,但我缺少的是究竟是什么让所建议的 IDE 对用户如此好,它的(缺点)优点是什么?

因此,也许我的问题应该是:

您提出什么 IDE(根据您的经验),为什么?

4

45 回答 45

259

最初:混乱

最初写这个答案时,我最近从 Visual Studio(有多年经验)切换到 Linux,我做的第一件事就是尝试找到一个合理的 IDE。在当时这是不可能的:没有好的 IDE 存在。

顿悟:UNIX 是一个 IDE。所有的。1

然后我意识到 Linux 中的 IDE 是带有工具的命令行:

根据您的需要,您将不得不安装和配置几个插件以使编辑器正常工作(这是一个令人讨厌的部分)。例如,大多数 Vim 程序员都会受益于智能自动补全的YouCompleteMe插件。

完成后,shell 是您与各种工具交互的命令界面——调试器 (gdb)、分析器 (gprof、valgrind) 等。您可以使用MakeCMakeSnakeMake或任何各种工具设置项目/构建环境备择方案。并且您使用版本控制系统管理您的代码(大多数人使用Git)。您还使用tmux(以前也是 screen)来多路复用(= 考虑多个窗口/选项卡/面板)并保持您的终端会话。

关键是,由于 shell 和一些工具编写约定,这些都相互集成。这样一来,Linux shell 就是一个真正的集成开发环境,完全可以与其他现代 IDE 媲美。(这并不意味着单个 IDE 没有命令行可能缺少的功能,但反之亦然。)

各有各的

一旦你养成了习惯,我不能夸大上述工作流程的功能。但是有些人只是更喜欢图形编辑器,自从最初编写这个答案以来的几年里,Linux 已经为几种不同的编程语言获得了一套优秀的图形 IDE(但据我所知,对于 C++ 来说不是)。即使 - 像我一样 - 你最终没有使用它们,也要试一试。这只是一个小而有偏见的选择:

请记住,此列表远未完成。


1我从 dsm 的评论中窃取了该标题。

2我以前在这里指的是 Vim。虽然普通的 Vim 仍然有能力,但 Neovim 是一个很有希望的重新启动,它对一些旧的疣进行了现代化改造。

于 2008-08-23T10:06:09.157 回答
86

我个人最喜欢的是CodeLite 2.x IDE。

见: http: //www.codelite.org

使用 CodeLite 的决定是基于对以下适用于 Linux 的 C++ IDE 的研究:

  • 带有 CDT 插件的 Eclipse Galileo
  • NetBeans 6.7(它也是 SunStudio IDE 的基础)
  • KDevelop4
  • 代码块 8.02
  • CodeLite 2.x

毕竟我决定使用CodeLite 2.x

下面我列出了有关上述 C++ IDE 的一些优点和缺点。请注意,这仅代表我的个人意见!

编辑:很遗憾 SOF 不支持表格,所以我必须分段写...

带有 CDT 插件的 Eclipse Galileo

优点:

  • 合理快速
  • 还支持Java、Perl(带有EPIC插件)
  • 常用且维护良好
  • 也可用于其他操作系统风格(Windows、MacOS、Solaris、AIX(?))

缺点:

  • GUI 非常混乱且有些不一致 - 根本不是很直观
  • 重量级
  • 仅支持 CVS (AFAIK)

NetBeans 6.7(注意这也是 SunStudio IDE 的基础)

优点:

  • 我见过的最直观的 GUI 之一
  • 还支持Java、Python、Ruby
  • 集成 CVS、SVN、Mercurial
  • 常用且维护良好
  • 也可用于其他操作系统(Windows、MacOS、Solaris)

缺点:

  • 极慢
  • 重量级
  • 使用空格进行缩进,这不是我工作的策略。我确定这是可配置的,但我不知道如何配置

KDevelop4(注意:我没有对它进行太多测试)

优点:

  • Linux 上常用
  • 集成 CVS、SVN、Mercurial

缺点:

  • GUI 看起来有些过时
  • 重量级
  • 非常特定于 KDE 环境

CodeBlocks 8.02(注意:我没有做太多测试)

优点:

  • 合理快速

缺点:

  • GUI 看起来有些过时(虽然它有一个不错的启动屏幕)
  • 编辑器中的字体非常小
  • 一些图标(例如调试器相关图标开始/步进)非常小
  • 没有源代码控制集成

CodeLite 2.x(注意:这是我个人最喜欢的)

优点:

  • 我在 Linux 上见过的最好的、现代的、直观的 GUI
  • 轻的
  • 合理快速
  • 集成SVN
  • 也可用于其他操作系统风格(Windows、MacOS、Solaris(?))

缺点:

  • 没有 CVS 集成(这对我很重要,因为我必须在工作中使用它)
  • 不支持 Java、Perl、Python(如果有就好了)
于 2009-11-21T13:19:11.063 回答
75
  1. 代码::块
  2. 日食 CDT

很快你就会发现 IDE 是不够的,无论如何你都必须学习 GCC 工具链(这并不难,至少学习基本功能)。但 IMO 使用 IDE 减少过渡期的痛苦并没有什么坏处。

于 2008-08-23T10:17:56.477 回答
66

一个快速的回答,只是为了给这个主题增加一点知识:
你一定要看看NetBeans。Netbeans 6.7 具有以下特性:

  • C/C++ 项目和模板:支持语法高亮、自动代码完成、自动缩进。
  • 它有一个 C/C++ 调试器
  • 支持编译器配置、配置管理器和 Makefile 支持(使用向导)。
  • 它有一个类窗口、一个用法窗口和一个文件导航窗口(或面板)。
  • 宏扩展视图和工具提示
  • 支持QT开发

我认为这是一个完美的(而且更好的)Visual Studio 替代品,也是学习 C/C++ 的一个非常好的工具。

祝你好运!

于 2008-09-10T12:46:41.990 回答
52

至少对于 Qt 特定项目,Qt Creator(来自 Nokia/Trolltech/Digia)显示出巨大的希望。

于 2009-01-03T10:10:41.723 回答
32

你能再澄清一下它对你的影响吗,你必须改变什么。也许您可以通过提供一些指向您使用的信息的链接来为我指明正确的方向。

我的第一个来源实际上是工具的man页面。只需键入

$ man toolname

在命令行上($这里是提示的一部分,而不是输入)。

根据平台的不同,它们写得很好,也可以在互联网上找到。在 的情况下make,我实际上花了几个小时阅读了完整的文档。实际上,在大多数情况下,我认为这没有必要或有帮助,但我在 Linux 下的第一次作业中有一些特殊要求,需要复杂的 makefile。编写 makefile 后,我把它交给了一位经验丰富的同事,他做了一些小的调整和更正。之后,我就差不多知道了make

我使用 GVIM 是因为我在那里有一些(但不多)的经验,我对 Emacs 或替代品一无所知。.gvimrc我发现阅读其他人的配置文件真的很有帮助。很多人把它放在网上。这是的。

不要试图一次掌握所有的binutils,功能太多了。但是获得一个总体概述,以便您知道在将来需要某些东西时在哪里搜索。但是,您应该g++知道andld的所有重要参数(除非明确阻止,否则会自动调用 GCC 链接器工具)。

我也很好奇,你编码时有代码完成和语法高亮吗?

语法高亮:是的,而且比 Visual Studio 好得多。代码完成:是。首先,我必须承认,即使在 Visual Studio 中我也没有使用 C++ 代码完成,因为(与 VB 和 C# 相比)它还不够好。我现在不经常使用它,但是,GVIM具有对 C++ 的本机代码完成支持。结合ctags库和taglist之类的插件,这几乎是一个 IDE。

实际上,让我开始的是Armin Ronacher 的一篇文章。看正文之前,先看看文末的截图吧!

在出现(语法)错误之前你必须先编译吗?

是的。但这对于 Visual Studio 来说是一样的,不是吗(我从未使用过 Whole Tomato)?当然,语法高亮会显示不匹配的括号,但仅此而已。

以及如何调试(再次考虑断点等)?

我使用gdbwhich 是一个命令行工具。还有一个名为DDD. gdb是一种现代调试工具,可以完成您在 IDE 中可以完成的所有操作。唯一真正让我烦恼的是读取堆栈跟踪,因为行没有缩进或格式化,因此当您使用大量模板时很难扫描信息(我这样做)。但这些也会使 IDE 中的堆栈跟踪变得混乱。

就像我说的,我有“高兴”在高中时使用 Windows 记事本和命令行 Java 编译器设置 Java 编程语言的第一步,这简直是一场噩梦!当然,当我可以将它与我当时拥有不错 IDE 的其他编程课程进行比较时

您甚至不应该尝试将 Emacs 或 GVIM 等现代的全功能编辑器与记事本进行比较。记事本是一个修饰TextBox控件,这确实使一切变得不同。此外,在命令行上工作在 Linux 和 Windows 中是一种非常不同的体验。窗户cmd.exe严重瘫痪。PowerShell 要好得多。

/ 编辑:我应该明确提到GVIM 具有选项卡式编辑(如选项卡式浏览,而不是选项卡与空格)!尽管它们根本没有隐藏,但我花了很长时间才找到它们。打开文件或创建新文件时只需键入:tabe而不是纯:e文本,GVIM 将创建一个新选项卡。可以使用光标或几个不同的快捷方式(取决于平台)在选项卡之间切换。键gt(键入g,然后t在命令模式下)应该可以在任何地方工作,并跳转到下一个选项卡或选项卡号。n如果给出了一个数字。键入:help gt以获得更多帮助。

于 2008-08-23T11:30:54.897 回答
25

不要重复一个答案,但我想我可以添加更多。

Slickedit是一个优秀的 IDE。

它很好地支持大型代码库,而不会减慢速度或花费所有时间进行索引。(这是我在使用 eclipse 的 cdt 时遇到的问题)。实际上,Slickedit 的速度可能是它最棒的地方。
代码完成效果很好,并且有很多选项可以用于自动格式化、美化和重构等。
它确实具有集成调试功能。
它有插件支持和相当活跃的社区创建它们。
从理论上讲,您应该能够与从事传统 makefile 工作的人很好地集成,因为它允许您直接从一个项目创建一个项目,但是当我尝试它时,它并没有像我希望的那样顺利。
除了 Linux,如果您需要,它还有 Mac 和 Windows 版本。

于 2008-09-08T17:31:44.617 回答
23

作为一个老手,我总是使用 Emacs。但这有一个非常陡峭和漫长的学习曲线,所以我不确定我是否可以将它推荐给新手。

确实没有适用于 Linux 的“好”IDE。Eclipse 对 C/C++ 不是很好(CDT 正在改进,但还不是很有用)。其他人缺少您要寻找的所有功能。

了解所有单独的工具(gcc、make、gdb 等)如何工作非常重要。这样做之后,您可能会发现 Visual Studio 的处理方式非常有限。

于 2008-08-23T11:38:34.787 回答
18

结帐 Netbeans,它是用 Java 编写的,因此无论您的操作系统如何,您都将拥有相同的环境,并且它支持的不仅仅是 C++。

我不会试图说服你,因为我认为 IDE 可以是一个非常个人的选择。对我来说,它通过速度快、支持我编码的语言并具有您期望从 IDE 获得的标准功能来提高我的工作效率。

于 2008-08-23T09:55:17.153 回答
18

只是对这个问题的快速跟进......

自从我开始使用 Vim 作为我在 Linux 中编程 C++ 的主要“GUI”工具以来已经一个月了。起初学习曲线确实有点陡峭,但过了一段时间,打开了正确的选项并运行了脚本,我真的掌握了窍门!

我喜欢你如何塑造 Vim 以满足你的需求的方式;只需添加/更改键映射,Vim 就会变成一个高效的“IDE”。

在 Linux 上构建和编译 C++ 程序的工具链也非常直观。make 和 g++ 是您将使用的工具。

然而,调试器 ddd并不是那么好,但也许那是因为我没有时间正确掌握它。

所以对于任何正在或正在寻找 Linux 中好的 C++ IDE 的人,就像我一样,你最好的选择是使用 Linux 本身中的标准可用工具(Vim、g++、ddd),你至少应该尝试使用他们,在寻找其他东西之前...

最后但同样重要的是,我真的要感谢konrad在这里的回答,它真的帮助我在 Linux 开发环境中找到了自己的路,谢谢!

我也没有结束这个问题,所以人们仍然可以做出反应,甚至可以在已经非常好的答案中添加新的建议或补充......

于 2008-10-01T08:53:37.970 回答
15

我建议您阅读The Art Of UNIX Programming。它将使您考虑将环境用作您的 IDE。

于 2009-05-08T09:59:30.160 回答
12

更简短的回答是:选择您喜欢的任何“编辑器”,然后使用 GDB 控制台或简单的 GDB 前端来调试您的应用程序。调试器带有花哨的 IDE,例如 Netbeans 很不适合 C/C++。我使用 Netbeans 作为我的编辑器,并使用 Insight 和 GDB 控制台作为我的调试器。

有了洞察力,您就拥有了一个不错的 GUI 和 GDB 的原始功能。

一旦你习惯了 GDB 命令,你就会开始喜欢它,因为你可以做一些使用 GUI 永远无法做到的事情。如果您使用 GDB 7 或更新版本,您甚至可以使用Python作为脚本语言。

这里的大多数人都比较关注 IDE 的“编辑器”。但是,如果您正在使用 C/C++ 开发大型项目,您很容易将 70% 以上的时间花在“调试器”上。花哨的 IDE 的调试器至少落后于 Visual Studio 10 年。例如,Netbenas 与 Visual Studio 的界面非常相似。但与 Visual Studio 相比,它的调试器有许多缺点。

  1. 即使只有几百个元素的数组也很慢显示
  2. 更改值不突出显示(默认情况下,Visual Studio 在监视窗口中以红色显示更改的值)
  3. 显示记忆的能力非常有限。
  4. 您不能修改源代码然后继续运行。如果错误需要很长时间才能解决,您希望更改源并实时应用更改并继续运行您的应用程序。
  5. 您不能更改“下一条语句”以运行。在 Visual Studio 中,您可以使用“设置下一条语句”来更改应用程序的运行方式。虽然如果使用不当,此功能可能会使您的应用程序崩溃,但它会为您节省大量时间。例如,如果您发现应用程序的状态不正确,但您不知道导致问题的原因,您可能希望在不重新启动应用程序的情况下重新运行源代码的某个区域。
  6. 没有对 STL 的内置支持,例如 vector、list、deque 和 map 等。
  7. 没有观察点。当您需要在变量更改时立即停止应用程序时,您需要具有此功能。基于 Intel 的计算机具有硬件观察点,因此观察点不会降低您的系统速度。如果不使用观察点,可能需要花费数小时才能找到一些难以发现的错误。“Visual Studio”将“观察指针”称为“数据断点”。

该列表可能会更长。

我对 Netbeans 或其他类似 IDE 的缺点感到非常沮丧,因此我开始学习 GDB 本身。我发现 GDB 本身非常强大。GDB 没有上面提到的所有“缺点”。实际上,GDB 非常强大,在很多方面甚至比 Visual Studio 还要好。这里我只是给你看一个非常简单的例子。

例如,您有一个数组,例如:

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

当您的应用程序停止并且您想要检查 IdAndValues 中的数据时。例如,如果您想在数组中查找特定“ID”的序数和值,您可以创建如下脚本:

define PrintVal 
set $i=0
printf "ID = %d\n", $arg0
while $i<1000
  if IdAndValues[$i].ID == $arg0
    printf "ordinal = %d, value = %d\n", $i, IdAndValues[$i].vaue
    set $i++
  end
end
end

您可以在当前上下文中使用应用程序中的所有变量、您自己的变量(在我们的示例中为 $i)、传递的参数(在我们的示例中为 $arg0)和所有 GDB 命令(内置或用户定义)。

使用GDB 提示符中的PrintVal 1打印出 ID“1”的值

顺便说一句,NetBeans 确实带有 GDB 控制台,但使用控制台可能会使 Netbeans 崩溃。我相信这就是为什么控制台在 NetBeans 中默认隐藏的原因

于 2010-03-29T17:44:41.857 回答
11

我正在使用“ Geany ”,到目前为止发现它很好,它快速而轻量级的 IDE。

Geany 的特点包括

  • 代码折叠
  • 会话保存
  • 基本 IDE 功能,例如语法高亮、制表符、自动缩进和代码完成
  • 简单的项目管理
  • 构建系统
  • 颜色选择器(在 Web 开发过程中非常方便)
  • 嵌入式终端仿真
  • 通话提示
  • 符号列表
  • 自动完成常见结构(例如 if、else、while 等)
于 2011-01-06T06:21:57.127 回答
10

如果您喜欢 Eclipse for Java,我建议您使用 Eclipse CDT。尽管 C/C++ 支持不如 Java 强大,但它仍然提供了大部分功能。它有一个名为 Managed Project 的好功能,如果您没有使用 Makefile 的经验,可以更轻松地使用 C/C++ 项目。但是您仍然可以使用 Makefile。我做 C 和 Java 编码,我对 CDT 非常满意。我正在为 C 中的嵌入式设备和与该设备对话的 Java 应用程序开发固件,并且为两者使用相同的环境非常好。我想这可能会让我更有效率。

于 2008-08-23T14:32:22.387 回答
9

我喜欢人们完全错过了 IDE 原始问题中的请求。Linux 不是 IDE。那不是那些话的意思。我使用 vi 和 gcc 以及 make 学习了 c 和 c++,我并不是说它们不是足够的工具,但它们不是 IDE。即使您使用更复杂的工具,如 vim 或 emacs 或任何您想要的花哨的编辑器,在命令行上输入命令也不是 IDE。

另外,你们都知道 make 作为 Visual Studio 的一部分存在,对吧?如果您可以使用 IDE 来加速某些事情,但仍然能够在需要时依靠命令行的东西,那么 IDE 是“限制”的想法只是愚蠢的。

说了这么多,我建议,就像上面的几个一样,尝试代码块。它有不错的代码突出显示,创建项目、编码、运行等的一种非常轻松的方式,这是真正 IDE 的核心,并且看起来相当稳定。调试很糟糕...我从未在任何 linux/unix 变体中看到过像样的交互式调试器。不是gdb。如果你习惯于 Visual Studio 风格的调试,那你就很不走运了。

无论如何,我会去收拾我的东西,我知道只有一个视图的 linux 人群会大喊大叫,然后马上把我赶出城外。

于 2011-02-23T17:35:36.603 回答
8

make + vim + gdb = 一个很棒的 IDE

于 2009-12-11T19:34:10.210 回答
7

我很喜欢Ultimate++的 IDE。它有一些设计为与他们自己的库一起使用的功能(顺便说一句,如果您不想在 GTK+ 或 QT 上购买,这是一个非常好的工具包),但它与一般 C++ 项目完美配合。它提供了不错的代码完成、良好的语法着色、集成调试以及大多数现代 IDE 支持的所有其他功能。

于 2008-08-23T13:52:25.837 回答
7

我真的建议使用 codeblocks。它不像 Eclipse 那样繁重,并且得到了 Visual Studio 项目的支持。

于 2008-10-21T17:38:20.167 回答
6

也许 Eclipse 的Linux 工具项目可以满足您的需求?

Linux Tools 项目旨在为 Linux 开发人员带来功能齐全的 C 和 C++ IDE。我们以 CDT 的源代码编辑和调试功能为基础,并集成了流行的原生开发工具,如 GNU Autotools、Valgrind、OProfile、RPM、SystemTap、GCov、GProf、LTTng 等。目前的项目包括 LTTng 跟踪查看器和分析器,以及RPM .spec 编辑器、Autotools 构建集成、Valgrind 堆使用分析工具和 OProfile 调用分析工具。

于 2010-01-12T09:47:02.867 回答
6

在 Linux 上有很多 IDE:

我的经验,最有价值的是EclipseQt Creator。两者都提供所有“标准”功能(即自动完成、语法高亮、调试器、git 集成)。值得注意的是,Eclipse 还提供了重构功能,而 Qt Creator 提供了与 Valgrind 的集成并支持在远程目标上进行部署。

商业CLion IDE看起来也不错(但我没有广泛使用它)。

于 2015-11-26T13:11:50.597 回答
5

虽然我使用 Vim,但我的一些同事使用SlickEdit,看起来不错。我不确定集成调试,因为无论如何我们都无法在我们的特定项目上做到这一点。

SlickEdit 确实对导航大型代码库有很好的支持,包括交叉引用和标签跳转。当然,它也有语法高亮和代码完成等基本功能。

于 2008-08-23T11:34:54.467 回答
5

我听说 Anjuta 对于 Gnome 用户来说非常漂亮。我用 KDevelop 玩了一下,它很好,但有点缺乏功能。Code::Blocks 也很有前途,我最喜欢那个。

于 2008-08-23T12:14:51.907 回答
5

Sun Studio 版本 12 可免费下载(提供免费和付费支持)- http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0

我确定你有代码完成和调试支持,包括这个 IDE 中的插件支持。

Sun Studio 可用于 Linux 和 Solaris。论坛: http: //developers.sun.com/sunstudio/community/forums/index.jsp。Sun Studio Linux 论坛: http: //forum.sun.com/forum.jspa?forumID =855

我很想听听您对这个工具的反馈。

BR,
~A

于 2008-09-17T19:55:23.150 回答
5

我以前使用过 Ultimate++ IDE,它相当不错。

于 2008-12-21T19:48:59.577 回答
5

然后我注意到这根本不是你在那里工作的方式*,我把所有东西都扔掉了,花了几天时间阅读手册,设置我的 shell (bash),设置 GVIM 环境,学习 GCC/binutils 工具链, make 和 gdb 从此过上了幸福的生活。

我基本上同意,但问题也是一种看法:我们忘记了在任何选择的 IDE(或其他环境)中变得富有成效是多么困难。我发现 IDE(Visual Studio、NetBeans、Eclipse)在很多方面都非常麻烦。

作为一个老手,我总是使用 Emacs。但这有一个非常陡峭和漫长的学习曲线,所以我不确定我是否可以将它推荐给新手。

我会第二个;在 Linux 和 MSW (XP2,W2K) 上使用 Emacs 作为我的主要编辑器。我不同意它有一个陡峭的学习曲线,但会说由于大量的功能它有一个很长的学习曲线。您可以在短时间内提高工作效率,但如果您愿意,您可以在未来几年学习它的新功能。

但是——不要指望 Emacs 的所有功能都可以在下拉菜单中使用,那里的功能太多了。

正如我所提到的,我多年来一直在 MSW 上使用 GNU Emacs。在我“升级”到 2008 之前,它一直与 Visual Studio 配合得很好;现在它有时会在从磁盘刷新文件之前延迟几秒钟。在 VS 窗口中编辑的主要原因是“Intellisense”代码完成功能。

于 2009-02-05T20:21:41.250 回答
5

推荐

于 2009-03-24T08:05:56.500 回答
5

我使用 Eclipse CDT 和 Qt Creator(用于 Qt 应用程序)。

这是我的偏好。这是一个非常具有启发性的问题,并且有多少开发人员就有多少答案。:)

于 2010-01-30T15:04:03.493 回答
4

光滑编辑。自 2005 年以来,我在 Windows 和 Linux 上都使用并喜欢 SlickEdit。我也有在 Visual Studio(5、6、2003、2005)和 Emacs 和命令行中工作的经验。我将 SlickEdit 与外部 makefile 一起使用,我的一些队友使用 SlickEdit,其他人使用 Emacs/vi。我不使用集成的调试器、集成的版本控制、集成的构建系统:我通常觉得太多的集成是真正的痛苦。SlickEdit 功能强大(错误极少)、快速且直观。它就像一辆德国车,一辆司机的车。

SlickEdit 的最新版本似乎提供了许多我不感兴趣的功能,我有点担心该产品将来会变得臃肿和稀释。现在(我使用 V13.0)它很棒。

于 2009-11-09T02:35:05.673 回答
3

对我来说Ultimate++似乎是编写跨操作系统程序的最佳解决方案

于 2010-02-17T17:13:24.497 回答
3

如果您使用 vim 很长时间,那么您实际上应该将它作为您的 IDE。有很多可用的插件。我发现其中一些非常有用,并在这里编译了它,看看它。

还有更多的 vi / vim 技巧和窍门系列。

于 2010-03-30T11:04:24.150 回答
3

大约 3 年前,我一直在将Anjuta用于我的大学项目。我最近没用过。但是当时很好,所以最新版本应该会更好。

于 2010-07-21T01:57:13.380 回答
3

对于基于 CMake 的项目,我使用 Jetbrains CLion

对于基于 Autotools 的项目,已经提到的 Qtcreator。

对于其他一切:VIM + YouCompleteMe

于 2015-11-20T09:19:21.913 回答
2

我喜欢SciTE作为 Linux 上 C++/Python 的基本编辑器。它具有类似于 VC 的键盘绑定,因此您不必重新编程剪切和粘贴手指。

我将它与 Git 一起用于源代码控制,并使用非常有用的“git grep”命令在您的代码库中进行搜索。

我玩过 Eclipse CDT,但我的源代码库太大了,而且我在 IDE 上花费了太多时间。如果您的项目较小,那么它可能对您有好处。

于 2008-09-15T15:10:11.073 回答
2

使用Mono-Develop。它与 Visual Studio 非常相似。它可以跨平台工作并且很棒!

于 2009-10-07T13:32:27.630 回答
2

我更喜欢使用 Emacs 和 Vim 来编写 C++ 代码。当我需要使用 IDE 时,我会使用 CodeBlocks。

于 2010-07-16T21:14:17.750 回答
1

Konrad 的建议非常好,您应该在经典的 vi/cc/ld/db/make 环境中轻松高效地工作,而不会遇到太多麻烦。很多很多大学生在 10 到 15 周的课程中学习了这个工具链。

也就是说,另一个经典环境是走 Emacs 路线。我不会称它为 IDE,但它确实将两个重要的开发工具集成到编辑器中:编译器的输出和调试器。您可以将其压缩到文件中与编译器错误对应的行,您可以设置断点并使用编辑器中的步进器。

于 2008-09-10T13:08:07.447 回答
1

我很高兴您似乎正在使用 vim 解决问题。但我不得不说,我对您如何“真的很喜欢 Eclipse for Java”感到有些困惑,这意味着您已经熟悉它的工作原理。在那种情况下,你为什么不把它也用于 C++ 呢?CDT 满足您提到的所有要求。

于 2008-10-20T16:23:11.770 回答
1

在 Visual Studio 中长大,我发现相对年轻的Code::Blocks非常熟悉。

于 2008-12-19T22:41:47.560 回答
1

vim 编辑器 + g++ 编译器(GNU C++)+ gdb - 可能会帮助你

于 2011-04-22T10:36:39.860 回答
1

IntelliJ IDEA + C/C++ 插件在http://plugins.intellij.net/plugin/?id=1373

准备好让你大吃一惊。

干杯!

于 2011-08-23T11:06:25.843 回答
0

为什么不将它也用于 C++?CDT 满足您提到的所有要求。

起初我没有使用 eclipse,因为我不确定它是否同样擅长为我提供使用 C++ 进行开发的方法(有效地)。除此之外,我还坚信必须有更好、更专业的工具可用于 Linux 中的 c++ 开发:

我真的很喜欢那个用于 java 的 [eclipse] IDE,但是它对 c++ 有什么好处吗?我不会错过更好的东西吗?

我真诚地相信,尽管某些工具(如 eclipse)在很多方面都很棒,但最好也寻找其他选项(我并不是说仅适用于 IDE,但总的来说,甚至在现实生活中也是如此)。 ..
就像在这种情况下,vim 真的很棒,如果我坚持我已经知道的东西,我就会错过它。

于 2008-10-20T17:28:48.067 回答
0

Code::Blocks 很棒。

于 2010-08-17T02:03:13.467 回答
0

您也可以尝试将 emacs 设置为 IDE。

细节在这里讨论。

于 2011-03-22T03:05:20.887 回答
0

极致,来自plan9的山姆,

您可以通过用户空间的计划 9 使用它。

于 2011-04-19T21:08:02.173 回答
0

在我看来,最好的 Linux IDE 是 SlickEdit。它花费了一些钱,但速度很快,对标记和差异工具的强大支持,适用于大型项目。

于 2011-08-23T19:18:13.053 回答