linux下的c - ubuntu c++ ide




用于Linux的C++ IDE? (20)

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

我可以找到这些SO主题:

我不是在寻找一个轻量级的 IDE。 如果一个IDE值钱,那么我会付钱,所以它不一定是免费的。

那么我的问题是:

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

最低限度是相当标准的:语法突出显示,代码完成(如intellisense或其Eclipse对应)和集成调试(例如基本断点)。

我自己也在搜索它,但是有太多的东西,几乎不可能用手将好东西与坏东西分开,特别是对于像我这样在Linux中几乎没有C ++编码经验的人。 我知道Eclipse支持C ++ ,并且我非常喜欢Java的IDE,但它对C ++有什么好处,并且有更好的东西吗?

第二篇文章实际上有一些很好的建议,但我缺少的是什么使得拥有的IDE对用户如此好,它的优点是什么?

也许我的问题应该是:

你提出什么IDE(给你的经验),为什么?


你能否澄清一点,你是如何改变的? 也许你可以通过提供一些你使用的信息的链接来指引我的方向。

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

$ man toolname

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

根据平台,它们写得很好,也可以在互联网上找到。 在make的情况下,我实际上阅读了几个小时的完整documentation 。 实际上,在大多数情况下,我认为这不是必要的或有帮助的,但是在Linux下我需要一个复杂的makefile的第一项任务中,我有一些特殊要求。 写完makefile之后,我将它交给了一位经验丰富的同事,他做了一些小小的调整和修正。 在那之后,我几乎知道make

我使用了GVIM,因为我在那里有一些(但不是很多)的经验,对于Emacs或其他选择我什么都不说。 我发现它真的有助于阅读其他人的.gvimrc配置文件。 很多人把它放在网上。 这是mine

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

另外我很好奇,你有代码完成和语法突出显示,当你的代码?

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

其实,让我开始的是Armin Ronacher的article 。 在阅读文本之前,看看它的截图!

在获取(语法)错误之前,您是否必须先编译?

是。 但是这对于Visual Studio来说是一样的,是不是(我从来没有使用过整个番茄)? 当然,语法突出显示将显示不匹配的括号,但这是关于所有的。

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

我使用gdb这是一个命令行工具。 还有一个称为DDD的图形前端。 gdb是一个现代的调试工具,可以完成您在IDE中可以完成的所有工作。 唯一让我非常恼火的是读取堆栈跟踪,因为行不是缩进或格式化的,所以在使用大量模板(我这样做)时很难扫描信息。 但是这些也会让IDE中的堆栈跟踪变得混乱。

就像我说的,我有幸在高中时使用Windows记事本和命令行java编译器设置了我的Java编程语言的第一步,而且,这真是一场噩梦! 当然,当我可以将它与其他编程课程进行比较时,我已经拥有了体面的IDE

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

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


然后我注意到,这根本不是你如何在那里工作*,而且我把所有东西都扔了出来,花了几天的时间阅读手册,设置我的shell(bash),建立了一个GVIM环境,学习了GCC / binutils工具链, make和gdb永远幸福地生活在一起。

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

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

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

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

正如我所说的,我已经在MSW上使用了GNU Emacs多年。 直到我“升级”到2008年之前,Visual Studio一直运行良好; 现在它有时会在从磁盘刷新文件之前延迟许多秒。 在VS窗口中编辑的主要原因是“Intellisense”代码完成功能。


  1. Code::Blocks
  2. Eclipse CDT

不久,你会发现IDE是不够的,你必须学习GCC工具链(这不难,至少要学习基本功能)。 但在减少IDE和IMO的过渡性疼痛方面没有任何坏处。


Checkout Netbeans,它是用Java编写的,所以无论您的操作系统如何,您都可以拥有相同的环境,并且它不仅支持C ++。

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


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

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


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.jsphttp://developers.sun.com/sunstudio/community/forums/index.jsp 。 Sun Studio Linux论坛: http://forum.sun.com/forum.jspa?forumID=855 : http://forum.sun.com/forum.jspa?forumID=855

我会非常希望听到您对此工具的反馈意见。

BR,
〜一



一个快速的答案,只是为了增加一点这方面的知识:
您一定要查看NetBeans 。 Netbeans 6.7具有以下特点:

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

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

祝你好运!


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

Linux真的没有一个“好”的IDE。 Eclipse对于C / C ++来说不是很好(CDT正在改进,但并不是很有用)。 其他人错过了你将要寻找的所有功能。

了解所有单个工具(gcc,make,gdb等)如何工作真的很重要。 在这样做之后,您可能会发现Visual Studio的做法非常有限。


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

自从我开始使用Vim作为我在Linux中编程C ++的主要'GUI'工具已经一个月了。 起初,学习曲线确实有点陡峭,但过了一段时间,打开正确的选项和ctags我真的得到了它的窍门!

我喜欢你如何塑造Vim来满足你的需求; 只需添加/更改键映射 ,Vim就变成了一个高效率的'IDE'。

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

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

因此,对于任何正在或正在Linux中寻找良好C ++ IDE的人来说,就像我一样,最好的选择是使用Linux本身的标准可用工具(Vim,g ++,ddd),并且您至少应该尝试使用他们在寻找其他人之前...

最后但并非最不重要的,我真的很感谢konrad在这里的回答,它真的帮助我在Linux开发环境中找到自己的方式,谢谢!

我也没有关闭这个问题,所以人们仍然可以反应,甚至可以添加新的建议或添加到已经非常好的答案...


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


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

在那里的vi / vim提示和技巧系列中还有很多。


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

请参阅: http://www.codelite.org : http://www.codelite.org

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

  • Eclipse伽利略与CDT插件
  • NetBeans 6.7(也是SunStudio IDE的基础)
  • KDevelop4
  • CodeBlocks 8.02
  • CodeLite 2.x

毕竟我决定使用CodeLite 2.x。

下面我列出了关于提到的C ++ IDE的一些优点和缺点。 请注意,这只反映了我个人的观点!

编辑 :SOF不支持表的可惜,所以我必须写段落...

Eclipse伽利略与CDT插件

优点:

  • 合理快速
  • 还支持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(很高兴有)

我以前使用过Ultimate ++ IDE,它非常好。


我使用的是迄今为止发现的“ Geany ”,它的快速和轻量级的IDE。

Geany的特点包括

  • 代码折叠
  • 会话保存
  • 基本的IDE功能,如语法高亮显示,制表符,自动缩进和代码完成
  • 简单的项目管理
  • 构建系统
  • 颜色选择器(在Web开发期间令人惊讶的方便)
  • 嵌入式终端仿真
  • 通知提示
  • 符号列表
  • 自动完成常用构造(如if,else,while等)

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


我建议你阅读UNIX编程艺术 。 它将构思您将IDE环境用作环境。


我真的建议Code::Blocks 。 它不像Eclipse那么沉重,并且它具有Visual Studio项目支持。


至少在Qt特定项目中, Qt Creator (来自诺基亚/ Trolltech / Digia)显示出巨大的希望。


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

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





ide