适用于 Linux 的 C++ IDE?

标签 c++ linux ide

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

5年前关闭。











锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。








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

我可以找到这些 SO 主题:

  • Lightweight IDE for linux
  • What tools do you use to develop C++ applications on Linux?

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

    那么我的问题是:

    What good, C++ programming IDE is available for Linux?



    最低要求是相当标准的:语法高亮、代码完成(如 intellisense 或其 Eclipse 对应物)和集成调试(例如,基本的
    断点)。

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

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

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

    What IDE do you propose (given your experiences), and why?

    最佳答案

    最初:困惑

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

    顿悟:UNIX 是一个 IDE。全部 1

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

  • 首先你设置你的shell
  • Bash,就我而言,但很多人更喜欢
  • fish
  • (Oh My) Zsh ;
  • 和你的编辑;选择你的毒药——两者都是最先进的:
  • Neovim 2 或
  • Emacs .

  • 根据您的需要,您必须安装和配置几个插件才能使编辑器正常工作(这是一个烦人的部分)。例如,大多数 Vim 程序员将从 YouCompleteMe 中受益。智能自动完成插件。

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

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

    各有各的

    一旦你养成了这个习惯,我怎么强调上述工作流程的运行效果都不为过。但是有些人只是更喜欢图形编辑器,并且在这个答案最初编写后的几年里,Linux 已经为几种不同的编程语言获得了一套出色的图形 IDE(但据我所知,不是 C++)。即使 - 像我一样 - 你最终没有使用它们,也要试一试。这只是一个小而有偏见的选择:
  • 对于 Python 开发,有 PyCharm
  • 对于 R,有 RStudio
  • 对于 JavaScript 和 TypeScript,有 Visual Studio Code (也是不错的全能编辑器)
  • 最后,许多人喜欢 Sublime Text editor用于一般代码编辑。

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

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

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

    关于适用于 Linux 的 C++ IDE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109/

    相关文章:

    c++ - 指针字段在 C++ 中的行为不符合预期

    c++ - PostgreSQL主键自增在C++中崩溃

    linux - 查找服务器上的所有 htaccess 文件

    javascript - PhpStorm HTML 检查问题

    具有最佳代码完成功能的 PHP IDE?

    c++ - `Object obj(args...)` 和 `Object obj{args...}` 有什么区别?

    c++ - boost .Python : expose class member which is a pointer

    android - 停止在 Eclipse 中录制宏

    linux - 使用 AWK 从 csv 文件中提取特定的单元格,并根据预定义的顺序进行排序

    php - 为什么在以下情况下未导入数据库转储?