代码之家  ›  专栏  ›  技术社区  ›  Clayton

你在Linux上使用什么工具来开发C++应用程序?[关闭]

  •  51
  • Clayton  · 技术社区  · 16 年前

    我在Linux环境下开发C++应用程序。我每天使用的工具包括带有CDT插件的Eclipse、gdb和valgrind。
    别人用什么工具?有没有什么东西可以与微软的visualstudio媲美呢?

    24 回复  |  直到 16 年前
        1
  •  52
  •   user JaredPar    10 年前

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

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

    我使用 strace 来观察我的软件在系统调用级别上的工作。这真的让我清理这些代码 time(0) 连续四次或打太多电话给 poll() 或无阻塞 read() 或者打电话之类的 超级的 效率低下和懒惰!)

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

    __builtin_prefetch . 我试着用它来寻找热的错误预测的分支,但没能让它对我起作用。

    更新:我发现perf比oprofile更有效。至少在Linux上。学会使用perf并像我一样热爱它。

        2
  •  24
  •   just somebody    15 年前

    Code::Blocks 这是一个非常棒的跨平台IDE(Win32,*nix,Mac)。

    我使用SVN的夜间(最近更像是每周)构建。它几乎包含了您从现代IDE中所期望的所有功能。这是一个非常棒的开源项目。

    此外,在Linux上,您可以享受到使用 Valgrind 这可能是最好的记忆跟踪器(它也做其他事情)的工具,金钱可以买到。而且它是免费的:)追踪内存泄漏和更容易。

    还有更多!Linux是一个非常好的开发平台:)

    (编辑)刚意识到你的问题中提到了瓦尔格林,我看得太快了。

        3
  •  13
  •   zhengtonic    16 年前

    当开发Linux的C++应用程序时,我更喜欢使用一系列CMDLINE工具。 Gdb带ddd,valgrind,libefence

        4
  •  12
  •   Paul    16 年前
    • g++

    • 制作

        5
  •  9
  •   thekidder    15 年前

    emacs,cmake,gdb,git,valgrind。它可能没有visualstudio那么流畅,但是它工作得很好,而且很容易通过bash脚本或emacslisp添加功能。

        6
  •  9
  •   James Ko    9 年前

    现在我用 Qt Creator . 它是跨平台的,并与Qt很好地集成,不过(当然)您可以选择创建一个独立的应用程序。

        7
  •  8
  •   andrewrk    16 年前

        8
  •  7
  •   fulmicoton    16 年前

    我相信KDevelop是最接近微软visualstudio的。 它已经很成熟,发展很快,很有希望。

    它实际上实现了一些在VS中甚至看不到的东西,例如,在垂直平铺模式下打开头文件和cpp文件,并在这两种模式下同步光标, ie:当你选择一个函数原型时,它的实现总是在你的右边。

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

        9
  •  6
  •   Pat Notz    16 年前

    Eclipse CDT 真的很不错。我仍然需要时不时地使用Emacs,但我非常喜欢索引、调用树、类型树、重构支持(尽管它与Java重构完全不同),等等。如果您自定义语法高亮显示功能非常强大(可以为局部变量、函数参数、方法等使用单独的颜色)。完成代码真的很方便。我主要使用的是Eclipse3.3,但是3.4也很棒。

    另外,我主要是在一个有点大的项目中使用这个工具(~1e6 sloc)--对于玩具项目来说,这可能是一种过度杀戮。

        10
  •  5
  •   Yuval F    16 年前

    当我在Linux上开发C++代码时,我使用Emacs作为编辑器,并作为GDB前端。后来,我的公司 SlickEdit 对于所有的程序员来说,这是一个不错的IDE,可能无法与visualstudio媲美。我们广泛使用gdb,偶尔使用valgrind和gprof。我强烈建议使用脚本语言来补充日常工作中的C++。我从PERL到python再到现在的ruby。他们都能完成工作,并有C++有弱点的优点。当然,您可以使用所有shell命令。我每天都使用sort()、uniq()、awk等等,还有一个建议是 ack ,grep的继任者。

        11
  •  5
  •   Community    7 年前

    关于标准的工具链,没什么好说的。只需在Ubuntu/Debian上通过

    aptitude install build-essential
    

    有趣的是关于IDE。

    我个人的印象是,在21世纪的今天,vi/emacs/make/autotools/configure不足以开发超过一定规模的软件项目(。。。是的, 求你了,请你怪我 遗产 异端 ...).

    C++ IDE for Linux .

        12
  •  3
  •   Rob    16 年前

    我使用NETBeaS C++插件,它非常优秀,并与CVS和SVN集成。项目管理方面也很好。我在几分钟内就准备好了。这是一个令人印象深刻的IDE,但是作为Java,可能会有点迟钝。

        13
  •  3
  •   greyfade    16 年前
    • GHC公司
    • 维姆
    • C示波器
    • GDB公司
    • 吉特

        14
  •  2
  •   Adam Hawes    16 年前
    • 猛击
    • 维姆
    • G++
    • GDB公司
    • 瓦尔格林
    • svn公司

        15
  •  2
  •   Scottie T    15 年前

    除了许多已经列出的,我们使用 autoconf 用于向用户部署程序的工具集。

        16
  •  2
  •   Nicolás    15 年前
    • CMake公司
    • g++
    • kdevelop(编译自SVN daily!)
        17
  •  0
  •   OJ.    16 年前

    Anjuta 是一个很好的想法,使Linux C++开发也相当愉快。

        18
  •  0
  •   Patrick Loz    16 年前

    我是KDevelop的另一个。它有一套非常多样化的工具。我不太熟悉VS,也不知道它是否通过接口集成了控制台访问,但是KDevelop允许您在IDE中运行konsole,我发现这非常有用。你可以一直给NETBeas一个现在它有完整的C/C++支持。

    除此之外,我很好地利用了gdb及其基于gui的ddd版本来解决代码或其他bug的问题。对于扔掉的程序,就像其他已经发布的程序一样——我在终端使用g++并为一些更大的项目做准备。

        19
  •  0
  •   lothar    16 年前

        20
  •  0
  •   mmmmmmmm    16 年前

    我在Windows上使用Eclipse+CDT和Cygwin+g++交叉编译Linux。

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

        21
  •  0
  •   pyriku    15 年前

    Mi的首选总是带有很多插件的emacs:ecb提供了一些缓冲区来导航文件夹、gdb、svn或git集成。。。这也是使用Python的mi首选。

    作为第二个选择,NETBeaS用C++插件,非常简单,而且很强大,但我觉得太重了。

        22
  •  0
  •   Vladimir Kocjancic    15 年前

        23
  •  0
  •   GuruM    14 年前

    Eclipse孵化项目Linux工具集成了C/C++开发工具。

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

    在尝试使用可用的.psf文件构建Linux工具后发现此问题。 谢天谢地,这个包藏在Helios软件包下载页面的底部。

    请注意,这是一个孵化项目,因此您可以期待支持只会随着时间的推移而变得更好。

    另请参见: 有关安装和使用eclipselinux工具的更新信息 Click Here

        24
  •  0
  •   David Khosid    13 年前

    FlexeLint用于静态代码分析,除此之外:
    使用CDT、gcc、make、gdb、valgrind和bashshell的Eclipse。
    源版本控制:Clearcase或git,取决于项目。