适用于 Linux 的 C++ IDE? [关闭]
Posted
技术标签:
【中文标题】适用于 Linux 的 C++ IDE? [关闭]【英文标题】:C++ IDE for Linux? [closed] 【发布时间】:2010-09-06 15:36:04 【问题描述】:我想将我的编程视野扩展到 Linux。一个好的、可靠的基础工具集很重要,还有什么比 IDE 更基础的呢?
我可以找到这些 SO 主题:
Lightweight IDE for linux 和 What tools do you use to develop C++ applications on Linux?我不是在寻找 轻量级 IDE。如果 IDE 物有所值,那么我会为它买单,所以它不一定是免费的。
那么我的问题:
有什么好处,C++ 编程 IDE 可用于 Linux?
最低要求是相当标准的:语法突出显示、代码完成(如 intellisense 或其 Eclipse 对应物)和集成调试(例如,基本 断点)。
我自己搜索过,但是太多了,几乎不可能用手来区分好坏,尤其是对于像我这样在 Linux 中几乎没有 C++ 编码经验的人。我知道Eclipse supports C++,我真的很喜欢那个用于 Java 的 IDE,但它对 C++ 有什么好处吗?还有更好的吗?
第二篇文章实际上有一些很好的建议,但我缺少的是究竟是什么让所建议的 IDE 对用户如此好,它的(缺点)优点是什么?
也许我的问题应该是:
你建议什么 IDE(根据你的经验),为什么?
【问题讨论】:
在上一个版本中,Eclipse 已将 eclipse.org/linuxtools 集成到其发布系列中 - 该项目旨在通过集成 Linux 特定工具使 Eclipse 成为 Linux 上更成熟的 C/C++ IDE。 【参考方案1】:最初:混乱
最初写这个答案时,我最近从 Visual Studio(有多年经验)切换到 Linux,我做的第一件事就是尝试找到一个合理的 IDE。在当时这是不可能的:没有好的 IDE。
顿悟:UNIX 是一个 IDE。 全部。1
然后我意识到 Linux 中的 IDE 是带有工具的命令行:
首先设置外壳 Bash,就我而言,但很多人更喜欢 fish 或 (Oh My) Zsh; 和您的编辑;选择你的毒药——两者都是最先进的: Neovim2 或 Emacs。然后根据您的需要,您必须安装和配置几个插件才能使编辑器正常工作(这是一个令人讨厌的部分)。例如,大多数 Vim 程序员都将受益于用于智能自动完成的 YouCompleteMe 插件。
一旦完成,shell 就是您与各种工具交互的命令界面 - 调试器 (gdb)、分析器 (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 editor 进行一般代码编辑。请记住,此列表远未完成。
1我从 dsm 的评论中偷了那个标题。
2 我以前在这里指的是 Vim。虽然普通的 Vim 仍然有能力,但 Neovim 是一个很有希望的重新启动,它对一些旧的缺陷进行了现代化改造。
【讨论】:
我强烈反对。无论你在做什么,一个体面的想法都很重要。它大大提高了生产力。我使用代码块,发现回到 VI 几乎是不可能的。我在 Mac、Win 和 Linux 上编写过代码,虽然我发现 Visual Studio 是最好的 IDE,但代码块也很接近。 David,也许您可以详细说明(自己的答案……)我描述的 IDE 提供的工具链中究竟缺少什么。正如我所说,我来自强大的 IDE 背景,我的生产力提升与你的完全相反。 Vim 提供哪些重构支持?在 Eclipse(在 Linux 下运行)中,我可以更改任何我希望的 Java 方法的名称,即使它在 300 个地方被调用。你能在 Vim 中轻松做到吗? quant_dev:重构需要以某种方式解析源代码。据我所知,没有 VIM 模块可以做到这一点,所以您的问题的答案是“没有”。这就是在 Java 等以 IDE 为中心的语言中更喜欢 IDE 的原因之一。由于 C++ 的重构支持(等)非常少(即使在 IDE 中),这不适用于 C++。 @hasen:哦,但大部分可以。例如,范围感知重命名。相信我,这是大。并且 Ecplise(例如)可以在这里节省 很多 的工作。【参考方案2】:我个人最喜欢的是 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(带E.P.I.C插件) 常用且维护良好 也可用于其他操作系统风格(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(如果有就好了)【讨论】:
Eclispe 通过插件支持 Hg、Git、SVN 等。启动/启动屏幕会吸大球。他们消耗资源并且提供的收益很少。在等待应用程序加载时,它们通常会出现在我正在处理的任何事情的前面。 PortableApps 和 Eclipse 需要摆脱它们。 Codelite 使用与 Visual Studio 相同的键盘快捷键进行调试,使其对视觉爱好者非常友好。 可能在这里打老马,但IMO eclipse的GUI确实无与伦比。是的,一开始很难学习,但它有点像 Vi,当你爬上陡峭的学习曲线后,生产力开始飙升。为了证明这一点,请尝试按 Ctrl+3 —— eclipse IMO 中非常棒的功能之一。 “缺点:使用空格进行缩进 [...] 我确定这是可配置的,但我不知道怎么做。”这表明,你还没有真正使用过工具,否则,你最终会找到选择的。 CodeLite 非常棒,就像咀嚼denyne 冰口香糖一样。它会在你的嘴里留下清新的薄荷味。 Eclipse 虽然功能丰富,但在您使用时也会给您这种回味无穷的感觉。我知道这听起来很幼稚,但这确实是解释使用它们的“感觉”的最佳比喻。我相信其他人会同意我的观点。【参考方案3】:-
Code::Blocks
Eclipse CDT
很快您就会发现 IDE 还不够,无论如何您都必须学习 GCC 工具链(这并不难,至少要学习基本功能)。但 IMO 对减少过渡期的痛苦没有任何害处,IMO。
【讨论】:
+1 for codeblocks 是的,你肯定想至少学习如何从 shell 编译和运行你的程序,因为 code::blocks 有一些缺陷。 Eclipse 根本不是轻量级恕我直言,Code::Blocks... 只是 ... Code::Blocks 只是无法解析 c++ 语言 -1 用于代码块。 -1 表示日食。他们都在调试期间更改了他们的 UI。到了新手用户通常会感到迷茫的地步。他们都无法调试分叉。他们都在 SVN/CVS 集成方面遇到了令人讨厌的问题。 (截至 2011 年 4 月 28 日,与 Subclipse 配合使用的最新 Eclipse 在 Gnome 中出现故障,每 10 分钟崩溃一次)。设置源代码控制是一场噩梦,与这些 IDE 集成同样困难。 Mercurial、Git 和 Bazaar 在各个方面都非常出色。【参考方案4】:一个快速的答案,只是为了给这个话题增加一点知识: 您一定要查看NetBeans。 Netbeans 6.7 具有以下特性:
C/C++ 项目和模板:支持语法高亮, 自动代码完成,自动缩进。 它有一个 C/C++ 调试器 支持编译器配置、配置管理器和 Makefile 支持(带有 向导)。 它有一个类窗口、一个用法窗口和一个文件导航窗口(或面板)。 Macro expansion view,还有tooltips。 支持QT development。我认为它是一个完美(而且更好)的 Visual Studio 替代品,也是学习 C/C++ 的一个非常好的工具。
祝你好运!
【讨论】:
对 c++ 也非常好。它拥有有史以来最好的语言解析器。 我更喜欢 Netbeans 而不是 Eclipse 用于 c++ 开发。 NetBeans 比 Eclipse 更有趣,我真希望更多的人开始意识到这一点。 在与 Eclipse 斗争了数周后,我发现了这个,切换到 NetBeans,谢谢!它具有更好的界面,响应速度更快,更直观且可定制。轻松击败 Eclipse 这里再次投票支持 NetBeans 比 Eclipse 好多少。它还拥有迄今为止我用过的最好的 Vim 仿真(作为插件)。【参考方案5】:至少对于 Qt 特定的项目,Qt Creator(来自 Nokia/Trolltech/Digia)显示出巨大的希望。
【讨论】:
我也将它用于非 Qt 项目。【参考方案6】:您能否更详细地说明一下它对您的影响,您必须更改的内容。也许您可以通过提供一些指向您使用的信息的链接来为我指明正确的方向。
我的第一个来源实际上是工具的man
页面。只需输入
$ man toolname
在命令行上($
是提示的一部分,而不是输入)。
根据平台的不同,它们写得非常好,也可以在互联网上找到。对于make
,我实际上花了几个小时阅读了完整的documentation。实际上,在大多数情况下,我认为这没有必要或有帮助,但我在 Linux 下的第一次作业中有一些特殊要求,需要复杂的 makefile。编写 makefile 后,我把它交给了一位经验丰富的同事,他做了一些小的调整和更正。之后,我就基本知道make
了。
我使用 GVIM 是因为我有一些(但不多)之前的经验,我对 Emacs 或替代品一无所知。我发现阅读其他人的.gvimrc
配置文件真的很有帮助。很多人把它放在网上。这是mine。
不要试图一次掌握所有的binutils,功能太多了。但是获得一个总体概述,以便您知道在将来需要某些东西时在哪里搜索。但是,您应该知道g++
和ld
的所有重要参数(除非明确阻止,否则会自动调用的GCC 链接器工具)。
我也很好奇,你编码的时候有代码补全和语法高亮吗?
语法高亮:是的,而且比 Visual Studio 好得多。代码完成:是-ish。首先,我必须承认,即使在 Visual Studio 中我也没有使用 C++ 代码完成,因为(与 VB 和 C# 相比)它还不够好。我现在不经常使用它,但是,GVIM 具有对 C++ 的本机代码完成支持。结合ctags 库和taglist 之类的插件,这几乎是一个IDE。
实际上,让我开始的是 Armin Ronacher 的 article。看正文之前,先看看文末的截图吧!
在出现(语法)错误之前是否必须先编译?
是的。但这对于 Visual Studio 来说是一样的,不是吗(我从未使用过 Whole Tomato)?当然,语法高亮会显示不匹配的括号,但仅此而已。
以及如何调试(再次考虑断点等)?
我使用gdb
,它是一个命令行工具。还有一个名为DDD
的图形前端。 gdb
是一种现代调试工具,可以完成您在 IDE 中可以完成的所有操作。唯一真正让我烦恼的是读取堆栈跟踪,因为行没有缩进或格式化,因此当您使用大量模板时很难扫描信息(我这样做)。但这些也会使 IDE 中的堆栈跟踪变得混乱。
就像我说的,我“很高兴”在高中时使用 Windows 记事本和命令行 Java 编译器设置了 Java 编程语言的第一步,这简直是一场噩梦!当然,当我可以将它与我当时拥有不错 IDE 的其他编程课程进行比较时
您甚至不应该尝试将 Emacs 或 GVIM 等现代的全功能编辑器与记事本进行比较。记事本是一个经过修饰的TextBox
控件,这确实使一切变得不同。此外,在命令行上工作在 Linux 和 Windows 中是一种非常不同的体验。 Windows cmd.exe
严重瘫痪。 PowerShell 要好得多。
/EDIT:我应该明确指出 GVIM 有标签编辑(就像标签浏览,而不是标签-vs-空格)!尽管它们根本没有隐藏,但我花了很长时间才找到它们。打开文件或创建新文件时只需输入:tabe
而不是普通的:e
,GVIM 将创建一个新选项卡。可以使用光标或几个不同的快捷方式(取决于平台)在选项卡之间切换。键 gt
(键入 g,然后在命令模式下键入 t)应该可以在任何地方工作,并跳转到下一个选项卡或选项卡号。 n 如果给出了一个数字。输入:help gt
以获得更多帮助。
【讨论】:
@confuzatron:不,我使用 gdb 有几个原因。最重要的是,我通常在没有运行任何 X 服务器的情况下工作。另外,我对 DDD 很长一段时间没有看到任何更新的事实有点不舒服。另一方面,项目所有权刚刚发生变化,而且似乎正在发生变化。 感谢 gvim 的选项卡信息,从来没有新的 :) VS2010 高亮语法错误,无需编译。 @Candy 不错,VS2010 在这方面做了很多改动,增加了后台编译的高级功能。但与此同时,gvim 也通过插件添加了很多功能。特别是,您现在可以通过clang_complete
插件在不编译的情况下获得语法错误突出显示。这个答案来自 2009 年,有些部分已经过时。但各方面都有所改进,因此或多或少是平衡的。【参考方案7】:
不再重复一个答案,但我想我可以再补充一点。
Slickedit 是一款出色的 IDE。
它很好地支持大型代码库,而不会减慢速度或花费所有时间进行索引。 (这是我在使用 eclipse 的 cdt 时遇到的问题)。实际上,Slickedit 的速度可能是它最棒的地方。 代码完成效果很好,并且有很多选项可以用于自动格式化、美化和重构等。 它确实具有集成调试功能。 它具有插件支持和相当活跃的社区创建它们。 理论上,您应该能够与从事传统 makefile 工作的人很好地集成,因为它允许您直接从一个项目创建一个项目,但是当我尝试它时,它并没有像我希望的那样顺利。 除了 Linux,它还有 Mac 和 Windows 版本,如果您需要的话。
【讨论】:
【参考方案8】:作为一个老手,我总是使用 Emacs。但这具有相当陡峭且漫长的学习曲线,因此我不确定是否可以将其推荐给新手。
确实没有适用于 Linux 的“好的”IDE。 Eclipse 对 C/C++ 不是很好(CDT 正在改进,但还不是很有用)。其他的则缺少您要寻找的所有功能。
了解所有单个工具(gcc、make、gdb 等)的工作原理非常重要。这样做之后,您可能会发现 Visual Studio 的处理方式非常有限。
【讨论】:
Eclipse CDT“还不是很有用吗?”详细说明会有所帮助。我发现它非常有用(并且易于使用)。 “还不是很有用”:自动完成通常不起作用,导航到声明或函数的使用不起作用,语法高亮并不总是起作用,重构不起作用等。这比使用 vi 好一点。 GDB 前端 UI 是唯一值得使用的东西,恕我直言。 我还没有真正尝试过使用 CDT 进行重构,但其他的东西似乎都可以。我会注意到我运行 Eclipse 时使用了一些相当大的最大内存使用配置参数(我有 8-12 GB 的 RAM),但看起来还不错。 上次我尝试 Eclipse CDT 时,自动完成的语法/语义解析器每次调用时都会使整个 IDE 冻结 8 秒。它使整个功能毫无用处。我不敢相信这件事没有在自己的线程中运行。这是两年前的事了,希望现在能修好。 (对吧?) 我发现 CDT 非常适合我涉足 QT 和 Boost。在带有 Mingw 的 Windows 上,它有问题,但在适当的 Posix 环境中,自动完成效果很好!导航到声明实际上是一个明显的漏洞。但考虑到 C++ 可以有多个相同的声明,我并不感到惊讶。这是一个比 Java 更难解决的问题。【参考方案9】:查看 Netbeans,它是用 Java 编写的,因此无论您的操作系统如何,您都将拥有相同的环境,而且它支持的不仅仅是 C++。
我不会试图说服你,因为我认为 IDE 可以是一个非常个人化的选择。对我来说,它通过速度快、支持我编码的语言并具有您期望从 IDE 获得的标准功能来提高我的工作效率。
【讨论】:
我可以将我的 +1 添加到此。 netbeans 拥有我在 ide 中见过的最好的 c++ 语言解析器;击败 Eclipse 的 cdt。【参考方案10】:只是对这个问题的快速跟进......
自从我开始使用 Vim 作为我的主要“GUI”已经一个月了 在 Linux 中编程 C++ 的工具。一开始的学习 曲线确实有点陡,但过了一会儿,随着 正确的选项打开了scripts running我真的 掌握了窍门!
我喜欢你如何塑造 Vim 来满足你的需求; 只需添加/更改key mappings,Vim 就会变成 高效的“IDE”。
在 Linux 上构建和编译 C++ 程序的工具链是 也很直观。 make 和 g++ 是您将要使用的工具 使用。
debugger ddd 并不是那么好,但是 也许那是因为我没有时间掌握它 正确。
对于任何正在或正在寻找一个好的 C++ IDE 的人来说 Linux,就像我一样,你最好的选择在于标准 Linux 本身可用的工具(Vim、g++、ddd)和你 在寻找之前至少应该尝试使用它们 其他的...
最后但同样重要的是,我真的要感谢konrad 他的回答在这里,它真的帮助我找到了自己的方式 Linux开发环境,谢谢!
我也不结束这个问题,所以人们仍然可以 做出反应,甚至可能添加新的建议或补充 已经很不错的答案了...
【讨论】:
你能让 IntelliSense 的功能在 Vim+ctags 中工作吗?不仅仅是自动完成,而是上下文相关的信息,例如函数的参数列表等? @kizzx2: Yes,还有are 很多options。【参考方案11】:我建议你阅读The Art Of UNIX Progranmming。它将使您将环境用作您的 IDE。
【讨论】:
【参考方案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 相比,它的调试器有许多缺点。
-
即使是只有几百个元素的数组,显示速度也很慢
更改值不突出显示(默认情况下,Visual Studio 在监视窗口中以红色显示更改的值)
显示记忆的能力非常有限。
您不能修改源代码然后继续运行。如果错误需要很长时间才能解决,您希望更改源并实时应用更改并继续运行您的应用程序。
您不能更改“下一条语句”以运行。在 Visual Studio 中,您可以使用“设置下一条语句”来更改应用程序的运行方式。虽然如果使用不当,此功能可能会使您的应用程序崩溃,但它会为您节省大量时间。例如,如果您发现应用程序的状态不正确,但您不知道问题的原因,您可能希望重新运行源代码的某个区域而不重新启动应用程序。
没有对 STL 的内置支持,例如 vector、list、deque 和 map 等。
没有观察点。当您需要在变量更改时立即停止应用程序时,您需要具有此功能。基于 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 中默认隐藏的原因
【讨论】:
好点。但不幸的是,GDB 的学习曲线非常陡峭。我已经使用它多年了,但我仍然从未使用过宏,而且(虽然我知道这是通过宏可能!)我扔给它的任何 STL 代码都无法比在现代 IDE。 我花了2天时间掌握了GDB中的大部分命令。一旦您了解 GBD 的原始力量,您将永远不会回头。当您修复难以发现的错误时,它将为您节省大量时间。【参考方案13】:我目前使用的是“Geany”,它的 IDE 速度快、重量轻。
Among Geany’s features are:
代码折叠 会话保存 基本 IDE 功能,例如语法高亮、制表符、自动缩进和代码完成 简单的项目管理 构建系统 颜色选择器(在 Web 开发过程中非常方便) 嵌入式终端仿真 通话提示 符号列表 常见结构(如 if、else、while 等)的自动补全【讨论】:
【参考方案14】:如果您喜欢 Eclipse for Java,我建议您使用 Eclipse CDT。 尽管 C/C++ 支持不如 Java 强大,但它仍然提供了大部分功能。它有一个名为 Managed Project 的好功能,如果您没有使用 Makefile 的经验,可以更轻松地使用 C/C++ 项目。但是您仍然可以使用 Makefile。 我做 C 和 Java 编码,我对 CDT 非常满意。我正在为 C 中的嵌入式设备和与该设备对话的 Java 应用程序开发固件,并且为两者使用相同的环境非常好。我想这可能会让我更有效率。
【讨论】:
【参考方案15】:我喜欢人们完全错过了 IDE 原始问题中的请求。 Linux 不是 IDE。那不是那些话的意思。我使用 vi 和 gcc 以及 make 学习了 c 和 c++,我并不是说它们不是足够的工具,但它们不是 IDE。即使您使用更复杂的工具,如 vim 或 emacs 或任何您想要的花哨的编辑器,在命令行上输入命令也不是 IDE。
另外,你们都知道 make 是 Visual Studio 的一部分,对吧?如果您可以使用 IDE 来加速某些事情,但仍然能够在需要时退回到命令行的东西,那么 IDE 是“限制”的想法只是愚蠢的。
说了这么多,我建议,就像上面的几个一样,尝试代码块。它有不错的代码突出显示,创建项目、编码、运行等的一种非常轻松的方式,这是真正 IDE 的核心,并且看起来相当稳定。调试很糟糕...我从未在任何 linux/unix 变体中看到过像样的交互式调试器。不是gdb。如果你习惯于 Visual Studio 风格的调试,那你就很不走运了。
不管怎样,我会去收拾我的东西,我知道只有单视图的 linux 人群会大喊大叫,然后马上把我赶出城外。
【讨论】:
你说得有道理。它不是我们所知道的 IDE。然而有趣的是,OP 投票支持该答案!把我的颜色钉在桅杆上:我是命令行 makefile 的粉丝。 终于有人有脑子了... 【参考方案16】:make + vim + gdb = 一个很棒的 IDE
【讨论】:
【参考方案17】:我非常喜欢Ultimate++ 的 IDE。它有一些设计为与他们自己的库一起使用的功能(顺便说一句,如果您不想在 GTK+ 或 QT 上购买,这是一个非常好的工具包),但它与一般 C++ 项目完美配合。它提供了不错的代码完成、良好的语法着色、集成调试以及大多数现代 IDE 支持的所有其他功能。
【讨论】:
哇!关于看起来真的很棒的截图!我一定会试一试的。你知道我需要付钱吗? (Ultimate++ 网站上不太清楚) 不,它在“speech”、“beer”和“ride”中是免费的。他们甚至对接受补丁非常开放,并且经常发布,所以它是开源的:)【参考方案18】:我真的建议codeblocks。它不像 Eclipse 那样笨重,并且有 Visual Studio 项目支持。
【讨论】:
【参考方案19】:也许 Eclipse 的 Linux Tools Project 可以满足您的需求?
Linux Tools 项目旨在为 Linux 开发人员带来功能齐全的 C 和 C++ IDE。我们以 CDT 的源代码编辑和调试功能为基础,并集成了流行的原生开发工具,例如 GNU Autotools、Valgrind、OProfile、RPM、SystemTap、GCov、GProf、LTTng 等。目前的项目包括 LTTng 跟踪查看器和分析器,以及RPM .spec 编辑器、Autotools 构建集成、Valgrind 堆使用分析工具和 OProfile 调用分析工具。
【讨论】:
【参考方案20】:在 Linux 上有很多 IDE:
Code::blocks Codelite KDevelop Qt Creator Eclipse with CDT NetBeans在我的经验中,最有价值的是Eclipse和Qt Creator。 两者都提供所有“标准”功能(即自动完成、语法突出显示、调试器、git 集成)。 值得注意的是,Eclipse 还提供了重构功能,而 Qt Creator 提供了与 Valgrind 的集成并支持在远程目标上部署。
另外,广告CLion IDE 看起来不错(但我没有广泛使用它)。
【讨论】:
【参考方案21】:我听说 Anjuta 非常适合 Gnome 用户。我用 KDevelop 玩了一点,它很好,但有点缺乏功能。 Code::Blocks 也很有前途,我最喜欢那个。
【讨论】:
【参考方案22】: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
【讨论】:
【参考方案23】:我之前用过 Ultimate++ IDE,感觉还不错。
【讨论】:
【参考方案24】:然后我注意到这根本不是你在那里工作的方式*,我把所有东西都扔掉了,花了几天时间阅读手册,设置我的 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”代码完成功能。
【讨论】:
【参考方案25】:geany我推荐
【讨论】:
【参考方案26】:虽然我使用 Vim,但我的一些同事使用 SlickEdit,看起来不错。我不确定集成调试,因为无论如何我们都无法在我们的特定项目上这样做。
SlickEdit 确实对导航大型代码库有很好的支持,包括交叉引用和标签跳转。当然它也有语法高亮和代码完成等基本功能。
【讨论】:
【参考方案27】:我使用 Eclipse CDT 和 Qt Creator(用于 Qt 应用程序)。
这是我的喜好。这是一个非常具有启发性的问题,并且有多少开发人员就有多少答案。 :)
【讨论】:
【参考方案28】:SlickEdit。自 2005 年以来,我在 Windows 和 Linux 上都使用并喜欢 SlickEdit。我也有在 Visual Studio(5、6、2003、2005)和 Emacs 和命令行工作的经验。我将 SlickEdit 与外部 makefile 一起使用,我的一些队友使用 SlickEdit,其他人使用 Emacs/vi。我不使用集成的调试器、集成的版本控制、集成的构建系统:我通常觉得太多的集成是真正的痛苦。 SlickEdit 功能强大(错误极少)、快速且直观。它就像一辆德国车,一辆司机的车。
SlickEdit 的最新版本似乎提供了许多我不感兴趣的功能,我有点担心该产品将来会变得臃肿和稀释。目前(我使用 V13.0)它很棒。
【讨论】:
【参考方案29】:对我来说Ultimate++ 似乎是编写跨操作系统程序的最佳解决方案
【讨论】:
【参考方案30】:如果您长期使用 vim,那么您实际上应该将它作为您的 IDE。有很多可用的插件。我发现其中一些非常有用,并在这里编译了它,看看它。
C/C++ IDE Source code browser在 vi / vim 提示和技巧系列中还有更多内容。
【讨论】:
以上是关于适用于 Linux 的 C++ IDE? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Windows 上适用于 Linux 的 C++ 编译器? [关闭]
Maya Mel 是不是有适用于 IDE 的良好 API? [关闭]