您使用什么工具在Linux上开发c++应用程序?

时间:2022-09-02 09:01:41

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?

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

24 个解决方案

#1


49  

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.

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

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

Eclipse CDT是我的第二个选择。与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.

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

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

当我需要发现记忆问题时,我会使用valgrind。

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!)

我使用strace监视我的软件在系统调用级别上的操作。这让我可以清理一些非常愚蠢的代码,它们在一行中调用4次time(0),或者对poll()或非阻塞读()进行太多调用,或者在套接字上调用read()来一次读取1字节。(这是非常低效和懒惰的!)

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.

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

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.

我使用oprofile试图在优化后的代码中找到热点,我发现它通常比gprof更好一点,而且它还可以查找数据和指令缓存丢失等功能。这可以向您展示如何使用GCC的__builtin_prefetch来删除一些有用的预取提示。我也试着用它来寻找热的预测错误的分支,但没能让它对我起作用。

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.

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

#2


22  

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

当然,还有代码::Blocks,这是一个非常棒的跨平台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.

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

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.

此外,在Linux上,你可以享受使用Valgrind的乐趣,因为它可能是最好的内存跟踪器(它还可以做其他事情)。它是免费的)跟踪内存泄漏和更容易。

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

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

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

(编辑)刚刚意识到你的问题中提到了维格雷,我读得太快了,真傻。

#3


13  

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)

在为linux开发c++应用程序时,我更喜欢使用一堆cmdline工具。Vim扩展了许多插件。Gdb有ddd, valgrind, libefence和SCons (automake在…你知道)

#4


12  

  • g++

    g + +

  • emacs

    emacs

  • bash command line

    bash命令行

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

    emacs中的gdb-模式(类型为M-X gdb)

  • make

    使

#5


8  

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.

emacs, cmake, gdb, git, valgrind。它可能没有Visual Studio那么光滑,但是它工作得很好,而且通过bash脚本或emacs lisp很容易添加功能。

#6


7  

g++ and make

g + +

#7


7  

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.

我相信KDevelop是最接近微软Visual Studio的。您几乎得到了所有的东西(除了不幸的是VS调试器,它确实是一个杀手)。它已经成熟了,发展很快,前景很好。

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.

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

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.

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

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.

如果你可以尝试不同于VS IDE的方法。你可以考虑试试vim。但要适应它需要很长时间。

#8


7  

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.

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

#9


6  

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.

Eclipse CDT非常不错。我仍然需要不时地求助于Emacs,但我真的很喜欢索引、调用树、类型树、重构支持(认为它不像Java重构),等等。如果您定制它(可以为局部变量、函数参数、方法等)定制语法高亮显示功能,那么它就非常强大。代码完成也非常方便。我主要使用了Eclipse 3.3,但3.4也很棒。

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

另外,我主要是在大型项目(~1e6 sloc)中使用这个方法——对于玩具项目来说,这可能有些过头了。

#10


5  

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.

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

#11


5  

You need a standard toolchain + an IDE.

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

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

关于标准的工具链没什么可说的。只需要在Ubuntu/Debian上安装

aptitude install build-essential

The interesting part is about an IDE.

有趣的部分是关于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 ...).

我个人的印象是,在21世纪的今天,vi/emacs/make/autotools/configure对于开发一定规模以上的软件项目来说是不够的。是的,请怪我的遗产异端……

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.

选择哪一种IDE仅仅是口味的问题。您将在SOF上找到许多线程。这里有一个permalink讨论哪个c++ IDE可能是“最好的”:Linux的c++ IDE。

#12


3  

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.

我使用NetBeans c++插件,它非常棒,集成了CVS和SVN。项目管理方面也很好。几分钟后,我就站起来,带着它奔跑起来。这是一个令人印象深刻的IDE,但作为Java,可能会有点迟缓。

#13


3  

  • GCC
  • 海湾合作委员会
  • GHC
  • GHC
  • Vim
  • Vim
  • Cmake
  • Cmake
  • cscope
  • cscope
  • GDB
  • 广东发展银行
  • Valgrind
  • Valgrind
  • strace
  • strace
  • git
  • git

Is there really anything else you could possibly need?

你还需要什么别的东西吗?

#14


2  

  • Bash
  • Bash
  • Vim
  • Vim
  • Make
  • 使
  • G++
  • G + +
  • GDB
  • 广东发展银行
  • Valgrind
  • Valgrind
  • Gprof
  • Gprof
  • svn
  • 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.

除了一个有标签支持的好终端外,不要看到一个GUI;将代码、调试器、输出等全部放在单独的窗口中,并快速地来回切换。

#15


2  

  • CMake
  • CMake
  • vim
  • vim
  • g++
  • g + +
  • kdevelop (compiled from SVN daily!)
  • kdevelop(从SVN日报编译!)
  • Mercurial when I can, SVN when I have to, git when there's really no other choice (contributing to project that uses it)
  • 灵活的,灵活的当我可以的时候,SVN当我必须的时候,git当实在没有其他选择的时候(为使用它的项目做出贡献)
  • valgrind
  • valgrind

#16


1  

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

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

#17


0  

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

Anjuta是一个很好的想法,它使Linux c++开发也非常有趣。

#18


0  

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.

我是另一个用于KDevelop。它有一套非常多样化的工具。我不是很熟悉VS,也不知道它是否通过它的接口集成了控制台访问,但是kdevelopment可以让您在IDE中运行konsole,我发现这一点非常有用。既然Netbeans拥有完整的C/ c++支持,您可以尝试一下。

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.

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

#19


0  

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

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

#20


0  

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

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

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

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

#21


0  

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.

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

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

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

#22


0  

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.

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

#23


0  

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.

Eclipse孵化项目Linux工具集成了C/ c++开发工具。它是一个GUI插件,可以将Valgrind、GProf、GCov、SystemTap等工具集成到Eclipse c++ CDT IDE中。

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

为C/ c++ Linux开发人员搜索Eclipse Helios IDE(包括孵化组件),(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.

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

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

参见:关于安装和使用Eclipse Linux工具的最新信息,请单击这里。

#24


0  

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.

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

#1


49  

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.

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

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

Eclipse CDT是我的第二个选择。与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.

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

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

当我需要发现记忆问题时,我会使用valgrind。

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!)

我使用strace监视我的软件在系统调用级别上的操作。这让我可以清理一些非常愚蠢的代码,它们在一行中调用4次time(0),或者对poll()或非阻塞读()进行太多调用,或者在套接字上调用read()来一次读取1字节。(这是非常低效和懒惰的!)

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.

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

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.

我使用oprofile试图在优化后的代码中找到热点,我发现它通常比gprof更好一点,而且它还可以查找数据和指令缓存丢失等功能。这可以向您展示如何使用GCC的__builtin_prefetch来删除一些有用的预取提示。我也试着用它来寻找热的预测错误的分支,但没能让它对我起作用。

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.

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

#2


22  

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

当然,还有代码::Blocks,这是一个非常棒的跨平台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.

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

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.

此外,在Linux上,你可以享受使用Valgrind的乐趣,因为它可能是最好的内存跟踪器(它还可以做其他事情)。它是免费的)跟踪内存泄漏和更容易。

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

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

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

(编辑)刚刚意识到你的问题中提到了维格雷,我读得太快了,真傻。

#3


13  

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)

在为linux开发c++应用程序时,我更喜欢使用一堆cmdline工具。Vim扩展了许多插件。Gdb有ddd, valgrind, libefence和SCons (automake在…你知道)

#4


12  

  • g++

    g + +

  • emacs

    emacs

  • bash command line

    bash命令行

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

    emacs中的gdb-模式(类型为M-X gdb)

  • make

    使

#5


8  

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.

emacs, cmake, gdb, git, valgrind。它可能没有Visual Studio那么光滑,但是它工作得很好,而且通过bash脚本或emacs lisp很容易添加功能。

#6


7  

g++ and make

g + +

#7


7  

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.

我相信KDevelop是最接近微软Visual Studio的。您几乎得到了所有的东西(除了不幸的是VS调试器,它确实是一个杀手)。它已经成熟了,发展很快,前景很好。

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.

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

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.

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

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.

如果你可以尝试不同于VS IDE的方法。你可以考虑试试vim。但要适应它需要很长时间。

#8


7  

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.

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

#9


6  

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.

Eclipse CDT非常不错。我仍然需要不时地求助于Emacs,但我真的很喜欢索引、调用树、类型树、重构支持(认为它不像Java重构),等等。如果您定制它(可以为局部变量、函数参数、方法等)定制语法高亮显示功能,那么它就非常强大。代码完成也非常方便。我主要使用了Eclipse 3.3,但3.4也很棒。

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

另外,我主要是在大型项目(~1e6 sloc)中使用这个方法——对于玩具项目来说,这可能有些过头了。

#10


5  

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.

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

#11


5  

You need a standard toolchain + an IDE.

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

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

关于标准的工具链没什么可说的。只需要在Ubuntu/Debian上安装

aptitude install build-essential

The interesting part is about an IDE.

有趣的部分是关于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 ...).

我个人的印象是,在21世纪的今天,vi/emacs/make/autotools/configure对于开发一定规模以上的软件项目来说是不够的。是的,请怪我的遗产异端……

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.

选择哪一种IDE仅仅是口味的问题。您将在SOF上找到许多线程。这里有一个permalink讨论哪个c++ IDE可能是“最好的”:Linux的c++ IDE。

#12


3  

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.

我使用NetBeans c++插件,它非常棒,集成了CVS和SVN。项目管理方面也很好。几分钟后,我就站起来,带着它奔跑起来。这是一个令人印象深刻的IDE,但作为Java,可能会有点迟缓。

#13


3  

  • GCC
  • 海湾合作委员会
  • GHC
  • GHC
  • Vim
  • Vim
  • Cmake
  • Cmake
  • cscope
  • cscope
  • GDB
  • 广东发展银行
  • Valgrind
  • Valgrind
  • strace
  • strace
  • git
  • git

Is there really anything else you could possibly need?

你还需要什么别的东西吗?

#14


2  

  • Bash
  • Bash
  • Vim
  • Vim
  • Make
  • 使
  • G++
  • G + +
  • GDB
  • 广东发展银行
  • Valgrind
  • Valgrind
  • Gprof
  • Gprof
  • svn
  • 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.

除了一个有标签支持的好终端外,不要看到一个GUI;将代码、调试器、输出等全部放在单独的窗口中,并快速地来回切换。

#15


2  

  • CMake
  • CMake
  • vim
  • vim
  • g++
  • g + +
  • kdevelop (compiled from SVN daily!)
  • kdevelop(从SVN日报编译!)
  • Mercurial when I can, SVN when I have to, git when there's really no other choice (contributing to project that uses it)
  • 灵活的,灵活的当我可以的时候,SVN当我必须的时候,git当实在没有其他选择的时候(为使用它的项目做出贡献)
  • valgrind
  • valgrind

#16


1  

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

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

#17


0  

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

Anjuta是一个很好的想法,它使Linux c++开发也非常有趣。

#18


0  

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.

我是另一个用于KDevelop。它有一套非常多样化的工具。我不是很熟悉VS,也不知道它是否通过它的接口集成了控制台访问,但是kdevelopment可以让您在IDE中运行konsole,我发现这一点非常有用。既然Netbeans拥有完整的C/ c++支持,您可以尝试一下。

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.

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

#19


0  

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

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

#20


0  

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

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

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

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

#21


0  

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.

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

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

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

#22


0  

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.

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

#23


0  

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.

Eclipse孵化项目Linux工具集成了C/ c++开发工具。它是一个GUI插件,可以将Valgrind、GProf、GCov、SystemTap等工具集成到Eclipse c++ CDT IDE中。

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

为C/ c++ Linux开发人员搜索Eclipse Helios IDE(包括孵化组件),(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.

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

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

参见:关于安装和使用Eclipse Linux工具的最新信息,请单击这里。

#24


0  

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.

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