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

[{'answer_id': 17232, 'author': 'andrewrk', 'author_id': 432, 'author_profile': 'https://Stackoverflow.com/users/432', 'pm_score': 3, 'selected': False, 'text': '<p>g++ and make</p>\n'}, {'answer_id': 17249, 'author': 'fulmicoton', 'author_id': 446497, 'author_profile': 'https://Stackoverflow.com/users/446497', 'pm_score': 3, 'selected': False, 'text': "<p>I believe KDevelop is what would be the closest from Microsoft Visual Studio.\nYou get pretty much everything (except unfortunately VS debugger which is indeed a killer).\nIts already mature and its development is pretty fast and promising.</p>\n\n<p>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,\nie: when you select a functions prototype, you always have its implementation on your right.</p>\n\n<p>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.</p>\n\n<p>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.</p>\n"}, {'answer_id': 17256, 'author': 'Adam', 'author_id': 1366, 'author_profile': 'https://Stackoverflow.com/users/1366', 'pm_score': 5, 'selected': False, 'text': '<p>g++ of course, but also <a href="http://www.codeblocks.org/" rel="noreferrer">Code::Blocks</a> which is an absolutely fantastic cross platform IDE (Win32, *nix, Mac).</p>\n\n<p>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.</p>\n\n<p>Also, on Linux you get the joy of using <a href="http://valgrind.org/" rel="noreferrer">Valgrind</a> 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.</p>\n\n<p>And there is just so much more! Linux is such a great dev platform :)</p>\n\n<p>(edit) Just realized you mentioned Valgrind in your question, silly me for reading it too fast.</p>\n'}, {'answer_id': 17301, 'author': 'OJ.', 'author_id': 611, 'author_profile': 'https://Stackoverflow.com/users/611', 'pm_score': 0, 'selected': False, 'text': '<p><a href="http://anjuta.sourceforge.net/" rel="nofollow noreferrer">Anjuta</a> is a nice idea that makes Linux C++ dev quite enjoyable as well.</p>\n'}, {'answer_id': 17329, 'author': 'Pat Notz', 'author_id': 825, 'author_profile': 'https://Stackoverflow.com/users/825', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://www.eclipse.org/cdt" rel="nofollow noreferrer">Eclipse CDT</a> 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.  </p>\n\n<p>Also, mostly I\'m using this for a somewhat large project (~1e6 sloc) -- it may be overkill for toy projects.</p>\n'}, {'answer_id': 17475, 'author': 'Yuval F', 'author_id': 1702, 'author_profile': 'https://Stackoverflow.com/users/1702', 'pm_score': 3, 'selected': False, 'text': '<p>When I developed C++ code on linux, I used emacs as an editor and as a gdb front-end. Later, my company purchased <a href="http://www.slickedit.com/" rel="noreferrer">SlickEdit</a> 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 <a href="http://petdance.com/ack/" rel="noreferrer">ack</a>, a grep successor.</p>\n'}, {'answer_id': 34050, 'author': 'Patrick Loz', 'author_id': 2091, 'author_profile': 'https://Stackoverflow.com/users/2091', 'pm_score': 0, 'selected': False, 'text': "<p>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.</p>\n\n<p>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.</p>\n"}, {'answer_id': 317022, 'author': 'zhengtonic', 'author_id': 40260, 'author_profile': 'https://Stackoverflow.com/users/40260', 'pm_score': 4, 'selected': False, 'text': '<p>When develop C++ apps for linux, i prefer using a bunch of cmdline tools.\nVim extended with a lot of plugins. \nGdb with ddd, valgrind, libefence \nand SCons (automake is a pain in ... you know where)</p>\n'}, {'answer_id': 351270, 'author': 'lothar', 'author_id': 44434, 'author_profile': 'https://Stackoverflow.com/users/44434', 'pm_score': 0, 'selected': False, 'text': '<p>Eclipse CDT for editing, SVN for source control, SCons for build management, CruiseControl for automated builds and a proprietary unit test framework.</p>\n'}, {'answer_id': 351281, 'author': 'Rob', 'author_id': 9236, 'author_profile': 'https://Stackoverflow.com/users/9236', 'pm_score': 2, 'selected': False, 'text': "<p>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.</p>\n"}, {'answer_id': 351283, 'author': 'thekidder', 'author_id': 1631, 'author_profile': 'https://Stackoverflow.com/users/1631', 'pm_score': 3, 'selected': False, 'text': "<p>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.</p>\n"}, {'answer_id': 351348, 'author': 'gnud', 'author_id': 27204, 'author_profile': 'https://Stackoverflow.com/users/27204', 'pm_score': 3, 'selected': False, 'text': '<p>Right now I use <a href="http://www.qt.io/ide/" rel="nofollow noreferrer">Qt Creator</a>. It\'s cross-platform and integrates pretty nicely with Qt, though (of course) you have the option of creating a standalone application.</p>\n'}, {'answer_id': 353787, 'author': 'mmmmmmmm', 'author_id': 44086, 'author_profile': 'https://Stackoverflow.com/users/44086', 'pm_score': 0, 'selected': False, 'text': '<p>I use Eclipse+CDT on Windows and Cygwin + g++ to cross compile for Linux.</p>\n\n<p>(Cross compilers are built using crosstool, a nice script-set for generating cross compilers)</p>\n'}, {'answer_id': 563443, 'author': 'Paul', 'author_id': 37865, 'author_profile': 'https://Stackoverflow.com/users/37865', 'pm_score': 4, 'selected': False, 'text': '<ul>\n<li><p>g++</p></li>\n<li><p>emacs</p></li>\n<li><p>bash command line</p></li>\n<li><p>gdb-mode in emacs (type M-X gdb)</p></li>\n<li><p>make</p></li>\n</ul>\n'}, {'answer_id': 563490, 'author': 'Zan Lynx', 'author_id': 13422, 'author_profile': 'https://Stackoverflow.com/users/13422', 'pm_score': 6, 'selected': False, 'text': "<p>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.</p>\n\n<p>Eclipse CDT is my second choice. It's nice but huge, ungainly and slow compared to vim.</p>\n\n<p>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.</p>\n\n<p>I use valgrind when I need to find a memory issue.</p>\n\n<p>I use <code>strace</code> to watch what my software is doing on a system call level.  This lets me clean up really stupid code that calls <code>time(0)</code> four times in a row or makes too many calls to <code>poll()</code> or non-blocking <code>read()</code> or things like calling <code>read()</code> on a socket to read 1 byte at a time.  (That is <strong>super</strong> inefficient and lazy!)</p>\n\n<p>I use <code>objdump -d</code> 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.</p>\n\n<p>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 <code>__builtin_prefetch</code>.  I tried to use it to find hot mis-predicted branches as well, but couldn't get that to work for me.</p>\n\n<p>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.</p>\n"}, {'answer_id': 563504, 'author': 'greyfade', 'author_id': 33345, 'author_profile': 'https://Stackoverflow.com/users/33345', 'pm_score': 2, 'selected': False, 'text': '<ul>\n<li>GCC</li>\n<li>GHC</li>\n<li>Vim</li>\n<li>Cmake</li>\n<li>cscope</li>\n<li>GDB</li>\n<li>Valgrind</li>\n<li>strace</li>\n<li>git</li>\n</ul>\n\n<p>Is there really anything else you could possibly need?</p>\n'}, {'answer_id': 563514, 'author': 'Adam Hawes', 'author_id': 54415, 'author_profile': 'https://Stackoverflow.com/users/54415', 'pm_score': 2, 'selected': False, 'text': '<ul>\n<li>Bash</li>\n<li>Vim</li>\n<li>Make</li>\n<li>G++</li>\n<li>GDB</li>\n<li>Valgrind</li>\n<li>Gprof</li>\n<li>svn</li>\n</ul>\n\n<p>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.</p>\n'}, {'answer_id': 607749, 'author': 'Scottie T', 'author_id': 6688, 'author_profile': 'https://Stackoverflow.com/users/6688', 'pm_score': 2, 'selected': False, 'text': '<p>In addition to many already listed, we use the <a href="http://www.gnu.org/software/autoconf/" rel="nofollow noreferrer">autoconf</a> toolset for deploying our program to users.</p>\n'}, {'answer_id': 1955225, 'author': 'Nicolás', 'author_id': 237349, 'author_profile': 'https://Stackoverflow.com/users/237349', 'pm_score': 2, 'selected': False, 'text': "<ul>\n<li>CMake</li>\n<li>vim</li>\n<li>g++</li>\n<li>kdevelop (compiled from SVN daily!)</li>\n<li>Mercurial when I can, SVN when I have to, git when there's really no other choice (contributing to project that uses it)</li>\n<li>valgrind</li>\n</ul>\n"}, {'answer_id': 1955392, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 3, 'selected': False, 'text': '<p>You need a standard toolchain + an IDE.</p>\n\n<p>There\'s nothing much to say about the standard toolchain. Just install e.g. on Ubuntu/Debian via</p>\n\n<pre><code>aptitude install build-essential\n</code></pre>\n\n<p>The interesting part is about an IDE.</p>\n\n<p>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, <em>please please please  blame me for the <s>heritage</s> heresy</em>  ...).</p>\n\n<p>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": <a href="https://stackoverflow.com/questions/24109/c-ide-for-linux/1775460#1775460">C++ IDE for Linux</a>.</p>\n'}, {'answer_id': 1955479, 'author': 'pyriku', 'author_id': 232797, 'author_profile': 'https://Stackoverflow.com/users/232797', 'pm_score': 0, 'selected': False, 'text': '<p>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.</p>\n\n<p>As a second choice, Netbeans with C++ plugin, is very simple and quite powerfull, but too heavy I think.</p>\n'}, {'answer_id': 1955564, 'author': 'Vladimir Kocjancic', 'author_id': 204612, 'author_profile': 'https://Stackoverflow.com/users/204612', 'pm_score': 0, 'selected': False, 'text': '<p>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.</p>\n'}, {'answer_id': 3759296, 'author': 'GuruM', 'author_id': 452885, 'author_profile': 'https://Stackoverflow.com/users/452885', 'pm_score': 0, 'selected': False, 'text': '<p>The Eclipse incubation project Linux Tools integrates C/C++ Development tools.\nIt\'s a GUI plugin to integrate tools like Valgrind, GProf, GCov, SystemTap etc into the Eclipse C++ CDT IDE.</p>\n\n<p>Search for Eclipse Helios IDE for C/C++ Linux Developers (includes Incubating components), (120 MB)</p>\n\n<p>Found this after trying to build Linux Tools using the .psf file available. \nThankfully found this package hiding right at the bottom of the Helios packages download page.</p>\n\n<p>Note that this is an incubation project so you can expect the support to only get better with time.</p>\n\n<p>See Also: \nFor updated info on installing and using Eclipse Linux Tools <a href="http://techtalkies.blogspot.com/2010/09/howto-install-eclipse-cdt-for-c.html" rel="nofollow noreferrer">Click Here</a></p>\n'}, {'answer_id': 5207088, 'author': 'David Khosid', 'author_id': 227563, 'author_profile': 'https://Stackoverflow.com/users/227563', 'pm_score': 0, 'selected': False, 'text': '<p>FlexeLint for static code analysis, in addition to mentioned above:<br>\nEclipse with CDT, gcc, make, gdb, valgrind, bash shell.<br>\nSource version control: Clearcase or git, depending on project.</p>\n'}]
['https://Stackoverflow.com/questions/17228', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1449/']