我们使用什么工具在Linux上开发C ++应用程序?

时间:2020-03-05 18:40:57  来源:igfitidea点击:

我在Linux环境中开发C ++应用程序。我每天使用的工具包括带有CDT插件的Eclipse,gdb和valgrind。
别人使用什么工具? Linux上有什么可以与Microsoft Visual Studio的出色表现相媲美的东西吗?

解决方案

回答

g ++并制作

回答

我相信KDevelop是最接近Microsoft Visual Studio的产品。
我们将获得几乎所有东西(不幸的是,VS调试器确实是杀手except)。
它已经成熟,并且发展很快并且很有前途。

实际上,它实现了一些我们甚至在VS中都看不到的东西。例如,在垂直图块模式下打开头文件和cpp文件,并在两个方向上使光标同步,
即:当我们选择一个函数原型时,总是在右边实现它。

KDevelop是一个KDE项目,但是在Gnome上运行。 Anjuta是Gnome上的一个等效项目,但我发现它无法用于实际工作。对于其余的堆栈gcc,请使用valgrind ddd(一个gdb IDE)和python编写脚本代码。

如果我们可以尝试使用不同于VS IDE的方法。我们可以考虑尝试vim。但是,要花很长时间才能习惯它。

回答

当然是g ++,还有Code :: Blocks,这是一个绝对出色的跨平台IDE(Win32,* nix,Mac)。

我使用SVN的每晚(更像是每周一次)构建。它几乎具有我们希望从现代IDE中获得的所有好处。这确实是一个很棒的开源项目。

同样,在Linux上,我们会获得使用Valgrind的乐趣,Valgrind可能是金钱可以买到的最好的内存跟踪器(它也做其他事情)。而且它是免费的:)轻松跟踪内存泄漏以及更多内容。

还有更多! Linux是一个很棒的开发平台:)

(edit)刚刚意识到我们在问题中提到了Valgrind,让我读得太快很愚蠢。

回答

Anjuta是一个不错的主意,它也使Linux C ++开发人员也非常满意。

回答

Eclipse CDT确实非常不错。我仍然不得不时不时地诉诸于Emacs,但是我真的很喜欢索引,调用树,类型树,重构支持(这与Java重构没什么两样)。如果自定义语法高亮(可以单独使用)局部变量,函数参数,方法等的颜色)。代码完成也非常方便。我主要使用Eclipse 3.3,但3.4也很棒。

另外,大多数情况下,我将它用于一个较大的项目(〜1e6 sloc),这可能对玩具项目来说是过大的。

回答

当我在Linux上开发C ++代码时,我将emacs用作编辑器和gdb前端。后来,我公司为所有程序员购买了SlickEdit,这是一个不错的IDE,也许不能与Visual Studio相提并论。我们广泛使用gdb,偶尔使用valgrind和gprof。我强烈建议在日常任务中使用脚本语言来补充C ++。我从PERL转到python,再到当前的ruby。他们所有人都能胜任工作,并拥有C ++的弱点。而且,当然,我们可以使用所有的shell命令。我每天都使用sort(),uniq(),awk等。还有一个建议是ack,它是grep的后继者。

回答

我是KDevelop的另一个人。它具有多种工具。我对VS以及是否通过其界面集成控制台访问并不十分熟悉,但是KDevelop可以让我们在IDE内运行konsole,这对我来说总是非常有用的。有了NetBeans的完整C / C ++支持,我们可以随时尝试一下。

除此之外,我会充分利用gdb及其基于gui的ddd版本来解决代码问题或者其他错误。对于一次性程序,就像已经发布的其他程序一样,我在终端上使用g ++并进行一些较大的项目。

回答

在为Linux开发C ++应用程序时,我更喜欢使用一堆cmdline工具。
Vim扩展了很多插件。
具有ddd,valgrind,libefence的Gdb
和SCons(automake令人痛苦……我们知道在哪里)

回答

用于编辑的Eclipse CDT,用于源代码控制的SVN,用于构建管理的SCons,用于自动构建的CruiseControl和专有的单元测试框架。

回答

我使用了NetBeans C ++插件,它非常出色,并且与CVS和SVN集成在一起。项目管理方面也很好。我在几分钟之内就启动并运行了它。这是一个令人印象深刻的IDE,但是使用Java可能会有点迟钝。

回答

emacs,cmake,gdb,git,valgrind。它可能不像Visual Studio那样精巧,但是效果很好,并且可以通过bash脚本或者emacs lisp轻松添加功能。

回答

现在,我使用Qt Creator。它是跨平台的,并且可以与Qt很好地集成,尽管(当然)我们可以选择创建独立的应用程序。

回答

我在Windows上使用Eclipse + CDT,在Windows上使用Cygwin + g ++进行交叉编译。

(交叉编译器是使用crosstool构建的,crosstool是一个用于生成交叉编译器的漂亮脚本集)

回答

  • g ++
  • emacs
  • bash命令行
  • emacs中的gdb-mode(类型为M-X gdb)
  • 制作

回答

我使用了一堆终端窗口。我在有趣的源文件上运行vim,在另一个上运行make和g ++输出以解决编译器错误,或者在gdb会话中运行时发生错误。如果我在查找定义方面需要帮助,可以运行cscope并使用vim的cscope支持进行跳转。

Eclipse CDT是我的第二选择。与vim相比,它不错,但又庞大,笨拙且缓慢。

使用终端窗口和vim非常灵活,因为我不需要随身携带400 MB的Java,因此我可以在任何地方使用SSH会话。

当我需要查找内存问题时使用valgrind。

我使用strace在系统调用级别上观察我的软件正在做什么。这让我清理了真正愚蠢的代码,该代码连续四次调用time(0)或者对poll()或者非阻塞read()进行了过多调用,或者诸如调用read()之类的事情在套接字上一次读取1个字节。 (那是超级低效和懒惰!)

我使用objdump -d检查机器代码,特别是对性能敏感的内部循环。与使用迭代器相比,这就是我发现字符串上的数组索引运算符速度较慢的事情。

我使用oprofile尝试在优化的代码中查找热点,我发现它通常比gprof更好,并且可以执行诸如查找数据和指令高速缓存未命中之类的事情。这样可以告诉我们在哪里使用GCC的__builtin_prefetch丢弃一些有用的预取提示。我也尝试使用它来查找错误的热门分支,但无法为我工作。

更新:我发现perf比oprofile更好。至少在Linux上。像我一样学会使用perf并喜欢它。

回答

  • 海湾合作委员会
  • GHC
  • Vim
  • 麦克马
  • 范围
  • 广发银行
  • 瓦尔格朗德
  • 痕迹
  • 吉特

真的还有其他我们可能需要的东西吗?

回答

  • 重击
  • Vim
  • 制作
  • G ++
  • 广发银行
  • 瓦尔格朗德
  • Gprof
  • svn

除了具有标签支持的良好终端外,再也看不到GUI。将代码,调试器,输出等全部保存在单独的窗口中,并快速制表和前进和后退。

回答

除了已经列出的许多功能之外,我们还使用autoconf工具集将程序部署到用户。

回答

  • CMake的
  • vim
  • g ++
  • kdevelop(每天从SVN编译!)
  • 如果可以的话,使用Mercurial,在必须使用SVN的情况下,当真的没有其他选择的时候,使用git(为使用它的项目做贡献)
  • 瓦尔格朗德

回答

我们需要一个标准的工具链+一个IDE。

关于标准工具链,没有什么可说的。只需安装例如在Ubuntu / Debian上通过

aptitude install build-essential

有趣的部分是关于IDE。

我个人的印象是,在21世纪的今天,vi / emacs / make / autotools / configure不足以开发特定大小以上的软件项目(...是的,请怪我是我的遗产异端...) 。

选择哪种IDE只是一个问题。我们会在SOF上找到很多线程。这是一个固定链接,讨论哪种C ++ IDE可能是"最好的":适用于Linux的C ++ IDE。

回答

Mi的首选始终是带有许多插件的emacs:ecb提供了一些在文件夹,gdb,svn或者git集成上导航的缓冲区...这也是使用Python的mi的首选。

作为第二选择,带有C ++插件的Netbeans非常简单且功能强大,但我认为它太重了。

回答

我使用系统上的任何东西。我更喜欢Eclipse CDT作为编辑器,而更喜欢g ++作为编译器。但是,如果不能使用eclipse,我也可以使用vi,这也很好。

回答

Eclipse孵化项目Linux Tools集成了C / C ++开发工具。
这是一个GUI插件,用于将Valgrind,GProf,GCov,SystemTap等工具集成到Eclipse C ++ CDT IDE中。

搜索C / C ++ Linux开发人员的Eclipse Helios IDE(包括孵化组件),(120 MB)

尝试使用可用的.psf文件构建Linux工具后,发现了这一点。
值得庆幸的是,该软件包隐藏在Helios软件包下载页面的底部。

请注意,这是一个孵化项目,因此我们可以期望支持会随着时间的推移而变得越来越好。

也可以看看:
有关安装和使用Eclipse Linux Tools的更新信息,请单击此处。