你用什么工具来开发C++ Linux 上的应用程序?

发布于 2024-07-04 08:03:09 字数 143 浏览 8 评论 0原文

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

I develop C++ applications in a Linux environment. The tools I use every day include Eclipse with the CDT plugin, gdb and valgrind.
What tools do other people use? Is there anything out there for Linux that rivals the slickness of Microsoft Visual Studio?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(24

忆离笙 2024-07-11 08:03:10

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 的更新信息 点击这里

The Eclipse incubation project Linux Tools integrates C/C++ Development tools.
It's a GUI plugin to integrate tools like Valgrind, GProf, GCov, SystemTap etc into the Eclipse C++ CDT IDE.

Search for Eclipse Helios IDE for C/C++ Linux Developers (includes Incubating components), (120 MB)

Found this after trying to build Linux Tools using the .psf file available.
Thankfully found this package hiding right at the bottom of the Helios packages download page.

Note that this is an incubation project so you can expect the support to only get better with time.

See Also:
For updated info on installing and using Eclipse Linux Tools Click Here

星光不落少年眉 2024-07-11 08:03:10

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

I use whatever is on the system. I prefer Eclipse CDT as an editor, and g++ as a compiler. However, if eclipse is not an option I use vi, which is fine as well.

作死小能手 2024-07-11 08:03:10

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

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

Mi first choice is allways emacs with a lot of plugins: ecb gives some buffers to navigate on the folders, gdb, svn or git integration... This is mi first choice using Python too.

As a second choice, Netbeans with C++ plugin, is very simple and quite powerfull, but too heavy I think.

ペ泪落弦音 2024-07-11 08:03:10

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

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

I use Eclipse+CDT on Windows and Cygwin + g++ to cross compile for Linux.

(Cross compilers are built using crosstool, a nice script-set for generating cross compilers)

狠疯拽 2024-07-11 08:03:10

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

Eclipse CDT for editing, SVN for source control, SCons for build management, CruiseControl for automated builds and a proprietary unit test framework.

吻安 2024-07-11 08:03:10

我是 KDevelop 的另一个人。 它有一套非常多样化的工具。 我不太熟悉 VS 以及它是否通过其界面集成了控制台访问,但 KDevelop 可以允许您在 IDE 中运行 konsole,我总是觉得这非常有用。 既然 Netbeans 具有完整的 C/C++ 支持,您随时可以尝试一下。

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

I'm another for KDevelop. It has a very diverse set of tools. I'm not real familiar with VS and whether or not it has integrated console access via its interface, but KDevelop can allow you to run a konsole inside the IDE, which I always find very useful. You could always give Netbeans a go now that it has full C/C++ support.

Other than that, I make good use of gdb and its gui-based version ddd for problems with the code or other bugs. For throw-away programs, like others that already posted - I use g++ at the terminal and make for some larger projects.

给妤﹃绝世温柔 2024-07-11 08:03:10

FlexeLint 用于静态代码分析,除了上面提到的:
带有 CDT、gcc、make、gdb、valgrind、bash shell 的 Eclipse。
源版本控制:Clearcase 或 git,具体取决于项目。

FlexeLint for static code analysis, in addition to mentioned above:
Eclipse with CDT, gcc, make, gdb, valgrind, bash shell.
Source version control: Clearcase or git, depending on project.

尸血腥色 2024-07-11 08:03:10

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

In addition to many already listed, we use the autoconf toolset for deploying our program to users.

物价感观 2024-07-11 08:03:10
  • GCC
  • GHC
  • Vim
  • Cmake
  • cscope
  • GDB
  • Valgrind
  • strace
  • git

你真的还需要其他东西吗?

  • GCC
  • GHC
  • Vim
  • Cmake
  • cscope
  • GDB
  • Valgrind
  • strace
  • git

Is there really anything else you could possibly need?

复古式 2024-07-11 08:03:10
  • Bash
  • Vim
  • Make
  • G++
  • GDB
  • Valgrind
  • Gprof
  • svn

除了具有选项卡支持的良好终端之外,永远看不到 GUI; 将代码、调试器、输出等全部保存在单独的窗口中,并且可以非常快速地前后移动。

  • Bash
  • Vim
  • Make
  • G++
  • GDB
  • Valgrind
  • Gprof
  • svn

Never a GUI to be seen except a good terminal with tab support; keep code, debugger, output, etc all in separate windows and tab back and forwards really quickly.

明天过后 2024-07-11 08:03:10

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

I use the NetBeans C++ plugin, which is superb and integrates with CVS and SVN. The project management side is also very good. I was up and running with it in minutes. It's an impressive IDE but being Java, can be a little sluggish.

可是我不能没有你 2024-07-11 08:03:10

Anjuta 是一个好主意,它也让 Linux C++ 开发变得非常有趣。

Anjuta is a nice idea that makes Linux C++ dev quite enjoyable as well.

恰似旧人归 2024-07-11 08:03:10
  • CMake
  • vim
  • g++
  • kdevelop(每天从 SVN 编译!)
  • Mercurial(当我可以时),SVN(当我必须时),git(当确实没有其他选择时)(为使用它的项目做出贡献)
  • valgrind
  • CMake
  • vim
  • g++
  • kdevelop (compiled from SVN daily!)
  • Mercurial when I can, SVN when I have to, git when there's really no other choice (contributing to project that uses it)
  • valgrind
闻呓 2024-07-11 08:03:09

当我在 Linux 上开发 C++ 代码时,我使用 emacs 作为编辑器和 gdb 前端。 后来我公司为所有程序员购买了SlickEdit,这是一个不错的IDE,可能无法与其他程序员相提并论。视觉工作室。 我们广泛使用 gdb,偶尔使用 valgrind 和 gprof。 我强烈建议在日常任务中使用脚本语言来补充 C++。 我从 PERL 到 python 再到现在的 ruby​​。 它们都完成了工作,并且具有 C++ 的弱点的优点。 当然,您还可以使用所有 shell 命令。 我每天都会使用 sort()、uniq()、awk 等。还有一个推荐是 ack,一个 grep接班人。

When I developed C++ code on linux, I used emacs as an editor and as a gdb front-end. Later, my company purchased SlickEdit for all of the programmers, which is a nice IDE, maybe not on a par with Visual Studio. We used gdb extensively, with the occasional use of valgrind and gprof. I highly recommend using a scripting language to complement C++ on day-to-day tasks. I went from PERL to python to the current ruby. All of them get the job done and have strengths where C++ has weaknesses. And, of course, you have all the shell commands at your disposal. I daily use sort(), uniq(), awk, etc. And one more recommendation is ack, a grep successor.

乱世争霸 2024-07-11 08:03:09

您需要一个标准工具链+一个IDE。

关于标准工具链没什么好说的。 只需通过 Ubuntu/Debian 安装即可。

aptitude install build-essential

有趣的部分是关于 IDE。

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

选择哪种 IDE 只是个人喜好问题。 你会发现SOF上有很多话题。 以下是讨论哪种 C++ IDE 可能是“最佳”的永久链接:适用于 Linux 的 C++ IDE< /a>.

You need a standard toolchain + an IDE.

There's nothing much to say about the standard toolchain. Just install e.g. on Ubuntu/Debian via

aptitude install build-essential

The interesting part is about an IDE.

My personal impression is that nowadays - in the 21th century - vi/emacs/make/autotools/configure is not enough for developing software projects above a certain size (... and yes, please please please blame me for the heritage heresy ...).

Which IDE to choose is simply a matter of taste. You will find a lot of threads on SOF. Here is a permalink discussing which C++ IDE might be the "best": C++ IDE for Linux.

万劫不复 2024-07-11 08:03:09

Eclipse CDT 确实非常好。 我仍然需要时不时地求助于 Emacs,但我真的很喜欢索引、调用树、类型树、重构支持(认为它与 Java 重构不同)等。如果您自定义语法突出显示,它会非常强大(可以有单独的局部变量、函数参数、方法等的颜色)。 代码完成也非常方便。 我主要使用 Eclipse 3.3,但 3.4 也很棒。

另外,我主要将其用于一个较大的项目(~1e6 sloc)——对于玩具项目来说,它可能有点过大了。

Eclipse CDT is really quite nice. I still have to resort to Emacs from time to time but I really love the indexing, call trees, type trees, refactoring support (thought it's nothing like Java refactoring), etc. Syntax highlighting is quite powerful if you customize it (can have separate colors for local variables, function arguments, methods, etc.). The code completion is really handy too. I've mostly used Eclipse 3.3 but 3.4 is great too.

Also, mostly I'm using this for a somewhat large project (~1e6 sloc) -- it may be overkill for toy projects.

暮倦 2024-07-11 08:03:09

g++ 并制作

g++ and make

听不够的曲调 2024-07-11 08:03:09

我相信 KDevelop 是与 Microsoft Visual Studio 最接近的。
你几乎得到了一切(不幸的是 VS 调试器除外,它确实是一个杀手)。
它已经成熟,发展相当快,前景广阔。

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

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

如果您可以尝试与 VS IDE 不同的方法。 你可以考虑尝试一下 vim。 不过需要很长时间才能习惯。

I believe KDevelop is what would be the closest from Microsoft Visual Studio.
You get pretty much everything (except unfortunately VS debugger which is indeed a killer).
Its already mature and its development is pretty fast and promising.

It actually implement a few stuff you won't even see in VS. For instance, open header file and cpp file in vertical tile mode, and have the cursor synchronized in both,
ie: when you select a functions prototype, you always have its implementation on your right.

KDevelop is a KDE project, but run on Gnome. Anjuta is an equivalent project on Gnome, but I find it unusable for real work. For the rest of the stack gcc make valgrind ddd (a gdb IDE) and python for scripting my code.

If you're ok to try a different approach than the VS IDE. You may consider trying vim. It takes a long time to get used to it though.

清秋悲枫 2024-07-11 08:03:09
  • g++

  • emacs

  • bash 命令行

  • emacs 中的 gdb-mode(类型 MX gdb)

  • make

  • g++

  • emacs

  • bash command line

  • gdb-mode in emacs (type M-X gdb)

  • make

夜血缘 2024-07-11 08:03:09

emacs、cmake、gdb、git、valgrind。 它可能不像 Visual Studio 那样灵活,但运行良好,并且可以通过 bash 脚本或 emacs lisp 轻松添加功能。

emacs, cmake, gdb, git, valgrind. It may not be as slick as Visual Studio but it works well, and it's easy to add functionality via bash scripting or emacs lisp.

﹏雨一样淡蓝的深情 2024-07-11 08:03:09

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

Right now I use Qt Creator. It's cross-platform and integrates pretty nicely with Qt, though (of course) you have the option of creating a standalone application.

诗酒趁年少 2024-07-11 08:03:09

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

我使用 SVN 的每晚(最近更像是每周)构建。 它几乎拥有现代 IDE 所期望的所有功能。 这确实是一个非常棒的开源项目。

另外,在 Linux 上,您可以享受使用 Valgrind 的乐趣,它可能是最好的内存跟踪器(它还可以做其他事情)金钱可以买到的工具。 而且它是免费的:) 轻松追踪内存泄漏等。

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

(编辑)刚刚意识到你在问题中提到了 Valgrind,我读得太快了,真是愚蠢。

g++ of course, but also Code::Blocks which is an absolutely fantastic cross platform IDE (Win32, *nix, Mac).

I use the nightly (more like weekly lately) builds from the SVN. It has almost all the bells and whistles you would expect from a modern IDE. It's really a truly fantastic Open Source project.

Also, on Linux you get the joy of using Valgrind which is probably the best memory tracker (it does other things as well) tool that money can buy. And it's free :) Track down memory leaks and more with ease.

And there is just so much more! Linux is such a great dev platform :)

(edit) Just realized you mentioned Valgrind in your question, silly me for reading it too fast.

旧人哭 2024-07-11 08:03:09

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

When develop C++ apps for linux, i prefer using a bunch of cmdline tools.
Vim extended with a lot of plugins.
Gdb with ddd, valgrind, libefence
and SCons (automake is a pain in ... you know where)

人海汹涌 2024-07-11 08:03:09

我使用一堆终端窗口。 我让 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 并像我一样喜欢它。

I use a bunch of terminal windows. I have vim running on interesting source files, make and g++ output on another for compiler errors or a gdb session for runtime errors. If I need help finding definitions I run cscope and use vim's cscope support to jump around.

Eclipse CDT is my second choice. It's nice but huge, ungainly and slow compared to vim.

Using terminal windows and vim is very flexible because I do not need to carry 400 MB of Java around with me I can use SSH sessions from anywhere.

I use valgrind when I need to find a memory issue.

I use strace to watch what my software is doing on a system call level. This lets me clean up really stupid code that calls time(0) four times in a row or makes too many calls to poll() or non-blocking read() or things like calling read() on a socket to read 1 byte at a time. (That is super inefficient and lazy!)

I use objdump -d to inspect the machine code, especially for performance sensitive inner loops. That is how I find things like the slowness of the array index operator on strings compared to using iterators.

I use oprofile to try to find hot spots in optimized code, I find that it often works a little better than gprof, and it can do things like look for data and instruction cache misses. That can show you where to drop some helpful prefetch hints using GCC's __builtin_prefetch. I tried to use it to find hot mis-predicted branches as well, but couldn't get that to work for me.

Update: I've found that perf works way better than oprofile. At least on Linux. Learn to use perf and love it as I do.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文