用于Linux的C ++ IDE?

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

我可以找到这些SO主题:

  • 适用于Linux和Linux的轻量级IDE
  • 你在Linux上用什么工具开发C ++应用程序?
  • 我不是在寻找一个轻量级的IDE。 如果一个IDE值钱,那么我会付钱,所以它不一定是免费的。

    那么我的问题是:

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

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

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

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

    也许我的问题应该是:

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


    最初:混乱

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

    主显节:UNIX是一个IDE。 所有这一切

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

  • 首先你设置你的shell
  • Bash,在我的情况下,但很多人喜欢
  • 鱼或鱼
  • (哦,我的)Zsh;
  • 和你的编辑 选择你的毒药 - 两者都是最先进的:
  • Neovim2或
  • Emacs的。
  • 根据你的需要,你将不得不安装和配置几个插件,以使编辑器很好地工作(这是一个恼人的部分)。 例如,Vim上的大多数程序员将从用于智能自动完成的YouCompleteMe插件中受益。

    一旦完成,shell就是您的命令界面,可与各种工具进行交互 - 调试器(gdb),Profiler(gprof,valgrind)等。您可以使用Make,CMake,SnakeMake或任何各种工具设置项目/构建环境备择方案。 而且你使用版本控制系统管理你的代码(大多数人使用Git)。 您还可以使用tmux(以前也是屏幕)来复用(=认为多个窗口/选项卡/面板)并坚持终端会话。

    关键是,由于shell和一些工具书写习惯,这些都是相互融合的。 那样的话,Linux shell就是一个真正集成的开发环境 ,与其他现代IDE完全一致。 (这并不意味着单个IDE没有可能缺少命令行的功能,但反过来也是如此。)

    给每个人自己

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

  • 对于Python开发,有PyCharm
  • 对于R,有RStudio
  • 对于JavaScript和TypeScript,有Visual Studio Code(这也是一个很好的全能编辑器)
  • 最后,许多人喜欢Sublime Text编辑器进行一般的代码编辑。
  • 请记住,这个清单还远远没有完成。


    1我从dsm的评论中偷走了这个标题。

    2我曾经在这里提到过Vim。 虽然普通的Vim仍然有能力,但Neovim是一个有希望的重启,并且现代化了几个老疣。


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

    请参阅: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(很高兴有)

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

    链接地址: http://www.djcxy.com/p/21425.html

    上一篇: C++ IDE for Linux?

    下一篇: How to capture an arbitrary number of groups in JavaScript Regexp?