C++ IDE for Linux?我想将我的编程视野扩展到Linux。一个好的,可靠的基本工具集很重要,什么比IDE更基本? 我可以找到这些SO主题:
我不是在寻找轻量级的IDE。如果IDE值得花钱,那么我会付钱,所以它不需要是免费的。 那么我的问题是:
最小值是相当标准的:语法高亮,代码完成(如intellisense或其Eclipse对应)和集成调试(例如,基本 我自己也在搜索它,但有很多东西几乎不可能手工分离好东西,特别是像我这样在Linux上几乎没有C ++编码经验的人。我知道Eclipse支持C ++,我真的很喜欢Java for IDE,但它对C ++有什么好处,还有更好的东西吗? 第二篇文章实际上有一些很好的建议,但我缺少的是究竟是什么让这个吸收的IDE对用户如此好,它的(dis)优势是什么? 也许我的问题应该是:
最初:混乱 在最初编写这个答案时,我最近从Visual Studio(具有多年经验)转换到Linux,我做的第一件事就是尝试找到合理的IDE。当时这是不可能的:没有好的IDE存在。 顿悟:UNIX是一个IDE。全部.1 然后我意识到Linux中的IDE是带有工具的命令行:
根据您的需要,您必须安装和配置几个插件,以使编辑器工作得很好(这是一个烦人的部分)。例如,Vim上的大多数程序员都将从YouCompleteMe插件中受益,以实现智能自动完成。 完成后,shell是您与各种工具交互的命令界面 - 调试器(gdb),Profilers(gprof,valgrind)等。使用Make,CMake,SnakeMake或任何各种工具设置项目/构建环境备择方案。您使用版本控制系统管理代码(大多数人使用Git)。您还可以使用tmux(以前也是屏幕)来复用(=考虑多个窗口/选项卡/面板)并保持终端会话。 关键是,由于shell和一些工具编写约定,这些都相互集成。这样,Linux shell就是一个真正的集成开发环境,与其他现代IDE完全相同。 (这并不意味着单个IDE没有命令行可能缺少的功能,但反过来也是如此。) 给每个人自己 一旦你养成习惯,我不能夸大上述工作流程的功能。但是有些人只是喜欢图形编辑器,而且自从这个答案最初编写以来的几年里,Linux已经为几种不同的编程语言获得了一套优秀的图形IDE(但据我所知,不是C ++)。即使像我一样,也要尝试一下 - 你最终没有使用它们。这里只是一个小而有偏见的选择:
请记住,此列表远未完成。 1我从dsm的评论中偷走了那个头衔。 2我以前在这里提到Vim。虽然普通的Vim仍然有能力,但Neovim是一个很有希望的重启,并且现代化了几个老疣。 我个人最喜欢的是CodeLite 2.x IDE。 见:http://www.codelite.org 使用CodeLite的决定是基于以下针对Linux的C ++ IDE的研究:
毕竟我决定使用CodeLite 2.x. 下面我列出了有关上述C ++ IDE的一些优点和缺点。请注意,这仅反映了我个人的意见! 编辑:可惜SOF不支持表格,所以我必须写段落...... 带有CDT插件的Eclipse Galileo 优点:
缺点:
NetBeans 6.7(注意这也是SunStudio IDE的基础) 优点:
缺点:
KDevelop4(注意:我没有太多测试) 优点:
缺点:
CodeBlocks 8.02(注意:我没有太多测试) 优点:
缺点:
CodeLite 2.x(注意:这是我个人的最爱) 优点:
缺点:
很快你会发现IDE还不够,你还是要学习GCC工具链(这并不难,至少要学习基本功能)。但IMO还不能减少IDE的过渡性痛苦。
快速回答,只是为此主题添加更多知识:
我认为它是一个完美的(并且更好)Visual Studio替代品,是学习C / C ++的一个非常好的工具。 祝好运! 至少对于Qt特定项目,Qt Creator(来自Nokia / Trolltech / Digia)显示出巨大的希望。
我的第一个来源实际上是工具'
在命令行上(
根据平台的不同,它们写得非常好,也可以在互联网上找到。在
我使用GVIM是因为我有一些(但不是很多)以前的经验,我根本不能说任何关于Emacs或替代品的东西。我发现阅读其他人的
不要试图一次掌握所有binutils,功能太多了。但是要获得一般概述,以便在将来需要某些东西时知道在哪里搜索。但是,您应该知道
语法高亮:是的,比Visual Studio好得多。代码完成:是的。首先,我必须承认,即使在Visual Studio中我也没有使用C ++代码完成,因为(与VB和C#相比)它还不够好。我现在不经常使用它,但是,GVIM具有对C ++的本机代码完成支持。结合ctags库和类似taglist的插件,这几乎就是一个IDE。 实际上,让我开始的是Armin Ronacher的一篇文章。在阅读文本之前,请查看最后的截图!
是。但这对于Visual Studio来说是一样的,不是吗(我从未使用过Whole Tomato)?当然,语法高亮显示将显示不匹配的括号,但这是关于所有。
我使用
您甚至不应该尝试将现代的全功能编辑器(如Emacs或GVIM)与记事本进行比较。记事本是一个装饰
/编辑:我应该明确提到GVIM有标签式编辑(如标签式浏览,而不是标签 - 空格)!我花了很长时间才找到它们,尽管它们根本没有隐藏。打开文件或创建新文件时,只需键入 不重复答案,但我想我可以多补充一点。 Slickedit是一款出色的IDE。
它支持大型代码库,而不会减慢或花费所有时间索引。 (这是我用eclipse的cdt遇到的一个问题)。实际上,Slickedit的速度可能是最好的。 作为一个老式的UNIX人,我总是使用Emacs。但这有一个相当陡峭和漫长的学习曲线,所以我不确定我是否可以推荐给新手。 Linux确实没有"好"的IDE。 Eclipse对C / C ++不是很好(CDT正在改进,但还不是很有用)。其他人都缺少您要寻找的所有功能。 了解所有单个工具(gcc,make,gdb等)的工作原理非常重要。执行此操作后,您可能会发现Visual Studio的处理方式非常有限。 只需快速跟进这个问题......
自从我开始使用Vim作为我的主要'GUI'已经一个月了
我喜欢你如何塑造Vim来满足你的需求;
在Linux上构建和编译C ++程序的工具链是
然而,调试器ddd并不是那么好,但是
所以对于那些正在或正在寻找一个好的C ++ IDE的人来说
最后但同样重要的是,我真的要感谢konrad
我也没有关闭这个问题,所以人们仍然可以 Checkout Netbeans,它是用Java编写的,因此无论您的操作系统如何,您都将拥有相同的环境,并且它支持的不仅仅是C ++。 我不会试图说服你,因为我认为IDE可以是一个非常个人化的选择。对我来说,它通过快速提高我的工作效率,支持我编写的语言,并具有您期望从IDE中获得的标准功能。 我建议你阅读The Art Of UNIX Progranmming。它将使您的思维成为使用环境作为IDE。 更短的答案是:选择你喜欢的任何"编辑器",然后使用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相比,它的调试器有许多缺点。 列表可能会更长。 我对Netbeans或其他类似IDE的缺点感到非常沮丧,因此我开始学习GDB本身。我发现GDB本身非常强大。 GDB没有上面提到的所有"缺点"。实际上,GDB非常强大,它在很多方面甚至比Visual Studio更好。在这里,我只向您展示一个非常简单的例子。 例如,你有一个像这样的数组:
当您的应用程序停止时,您想要检查IdAndValues中的数据。例如,如果要在数组中查找特定"ID"的序数和值,可以创建如下的脚本:
您可以在当前上下文中使用应用程序中的所有变量,您自己的变量(在我们的示例中,它是$ i),传递的参数(在我们的示例中,它是$ arg0)和所有GDB命令(内置或用户定义) )。 使用GDB提示中的PrintVal 1打印ID"1"的值 顺便说一下,NetBeans确实附带了GDB控制台,但是通过使用控制台,你可能会崩溃Netbeans。我相信这就是NetBeans默认隐藏控制台的原因 我使用的"Geany"到目前为止发现它的快速和轻量级IDE。 Geany的功能包括:
如果您喜欢Eclipse for Java,我建议使用Eclipse CDT。 我喜欢人们完全错过IDE原始问题中的请求。 Linux不是IDE。这不是那些词的意思。我使用vi和gcc和make学习了c和c ++,我并不是说它们不是适当的工具,但它们不是IDE。即使您使用更复杂的工具(如vim或emacs)或任何您想要的精美编辑器,在命令行上键入命令也不是IDE。 另外,你们都知道make作为visual studio的一部分存在吗?如果你可以使用IDE来加速某些事情,那么IDE是"限制"的想法是愚蠢的,但仍然能够在需要时依赖命令行。 所有这一切,我建议,正如以上几个,尝试代码块。它有很好的代码突出显示,一个非常轻松的方式来创建一个项目,编码,运行它等,这是一个真正的IDE的核心,似乎相当稳定。调试糟透了......我从来没有在任何linux / unix变体中看到过一个像样的交互式调试器。 gdb不是吗。如果您习惯于视觉工作室风格的调试,那么你几乎没有运气。 无论如何,我会去装我的东西,我知道只有一个观点的Linux人群会大声喊叫,让我立刻离开城镇。 make + vim + gdb =一个很棒的IDE 我非常喜欢Ultimate ++的IDE。它有一些功能,旨在与自己的库一起使用(如果您不想在GTK +或QT上购买,BTW,这是一个非常好的工具包),但它与一般的C ++项目完美配合。它提供了良好的代码完成,良好的语法着色,集成调试以及大多数现代IDE支持的所有其他功能。 我真的建议使用codeblocks。它没有Eclipse那么重,而且它得到了Visual Studio项目的支持。 在Linux上有很多IDE:
根据我的经验,最有价值的是Eclipse和Qt Creator。 商用CLion IDE看起来也不错(但我没有广泛使用它)。 也许Eclipse的Linux工具项目可以满足您的需求?
我之前使用的是Ultimate ++ IDE,它相当不错。 我听说Anjuta对于Gnome用户来说非常光滑。我和KDevelop玩了一下它很好,但有点缺乏特色。 Code :: Blocks也很有前途,我最喜欢那个。 虽然我使用Vim,但我的一些同事使用的SlickEdit看起来还不错。我不确定集成调试,因为无论如何我们无法在我们的特定项目上做到这一点。 SlickEdit确实支持导航大型代码库,具有交叉引用和标记跳转功能。当然它也有语法高亮和代码完成等基本功能。 Sun Studio版本12是免费下载(免费和付费支持) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0。 我确信你有代码完成和调试支持,包括这个IDE中的插件支持。
Sun Studio适用于Linux和Solaris。 我很想听听您对此工具的反馈。
BR,
我大多同意,但问题也是一种看法:我们忘记了在任何选择的IDE(或其他环境)中提高效率的难度。我发现IDE(Visual Studio,NetBeans,Eclipse)在很多方面都非常麻烦。
我是第二个;在Linux和MSW(XP2,W2K)上使用Emacs作为我的主编辑器。 但是 - 不要期望Emacs的所有功能都可以在下拉菜单中使用,因为在那里找到它的功能太多了。 正如我所提到的,我已经在MSW上使用了GNU Emacs多年。在我"升级"到2008年之前,它始终与Visual Studio配合良好;现在它有时会在从磁盘刷新文件之前延迟很多秒。 VS窗口中编辑的主要原因是"Intellisense"代码完成功能。 我使用Eclipse CDT和Qt Creator(用于Qt应用程序)。 这是我的偏好。这是一个非常具有启发性的问题,答案与开发人员一样多。 :) 我推荐的 SlickEdit的。自2005年以来,无论是在Windows上还是在Linux上,我都使用过SlickEdit。我也有使用Visual Studio(5,6,2003,2005)和Emacs和命令行的经验。我使用SlickEdit和外部makefile,我的一些队友使用SlickEdit,其他人使用Emacs / vi。我不使用集成调试器,集成版本控制,集成构建系统:我通常发现太多集成是真正的痛苦。 SlickEdit非常强大(很少有错误),快速而直观。它就像一辆德国汽车,一辆司机的汽车。 SlickEdit的最新版本似乎提供了许多我不感兴趣的功能,我有点担心该产品将来会变得臃肿和稀释。现在(我使用V13.0)很棒。 如果你长时间使用vim,那么你应该把它作为你的IDE。有很多插件可用。我发现其中有几个非常有用,并在这里编译,看看它。
在那里的vi / vim提示和技巧系列中还有更多。 对于基于CMake的项目,我使用Jetbrains CLion 对于基于Autotools的项目,已经提到的Qtcreator。 其他一切:VIM + YouCompleteMe 大约3年前,我一直在为大学项目使用Anjuta。我最近没有使用它。但那时候很不错,所以最新版本应该会更好。 对我来说,Ultimate ++似乎是编写跨操作系统的最佳解决方案 我更喜欢使用Emacs和Vim来编写C ++代码。当我需要使用IDE时,我使用CodeBlocks。 我喜欢SciTE作为Linux上C ++ / Python的基本编辑器。它具有类似于VC的键盘绑定,因此您无需重新编程剪切和粘贴的手指。 我将它与Git一起用于源代码控制和非常有用的'git grep'命令,用于在代码库中进行搜索。 我使用Eclipse CDT,但我的源代码库很大,我花了太多时间等待IDE。如果您的项目较小,它可能对您有好处。 使用Mono-Develop。它与Visual Studio非常相似。它跨平台工作,真棒! 我很高兴你似乎正在用vim解决这个问题。但我不得不说,我对你如何"真的喜欢Eclipse for Java"感到有点神秘,暗示你已经熟悉它是如何工作的。在那种情况下,你为什么不用它来用于C ++? CDT符合您提到的每一项要求。 在Visual Studio上长大后,我发现相对年轻的Code :: Blocks非常熟悉。 vim编辑器+ g ++编译器(GNU C ++)+ gdb - 可能对你有帮助 IntelliJ IDEA + http://plugins.intellij.net/plugin/?id=1373上的C / C ++插件 准备好让你头脑发热。 干杯! 康拉德的建议非常好,你应该在经典的vi / cc / ld / db / make环境中愉快地工作,而不会有太多麻烦。很多很多大学生在10-15周的课程中学习了这个工具链。 也就是说,另一个经典环境是走Emacs路线。我不会把它称为IDE,但它确实将两个重要的开发工具集成到编辑器中:编译器的输出和调试器。您可以将它压缩到文件中与编译器错误相对应的行,并且可以设置断点并使用编辑器中的步进器。
我最初没有使用eclipse,因为我不确定它是否同样适合用C ++开发(高效)。除此之外,我还确信在Linux中必须有更好,更专业的工具可用于c ++开发:
我真的相信,虽然有些工具(比如eclipse)在许多方面都很出色,但最好还是寻找其他选项(我并不仅仅指IDE,而是一般甚至现实生活中)。 .. Code :: Blocks很棒。 您也可以尝试将emacs设置为IDE。 详细信息在这里讨论。 极致,来自plan9的山姆, 您可以通过用户空间的Plan 9使用它。 在我看来,最适合Linux的IDE是SlickEdit。它需要花费一些钱,但它对标记和伟大的差异工具的快速,强大支持,适用于大型项目。 |