Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What's the best IDE for developing C / C++ on Ubuntu? I tried installing Eclipse but it seems like I need the eclipse-cdt package also. The problem is there is no such package, at least for Lucid. How do I proceed? I am not tied to Eclipse.

share|improve this question
"Best" is a subjective. Perhaps this should be a community wiki. – Steven D Oct 5 '10 at 4:39
I think C and C++ IDEs are likely to almost completely overlap, so this is probably a duplicate of Development environment for C – Michael Mrozek Oct 5 '10 at 4:44
Bah, should have searched before typing my answer. Oh well. – Steven D Oct 5 '10 at 4:59
Perhaps this should be migrated to askubuntu.com? – Chris Wilson Oct 13 '10 at 11:51
up vote 6 down vote accepted

I'm a pretty hard-core Emacs user but still, for developing C++ I prefer Qt-Creator (don't be afraid because of the name, it works well for non-QT-projects) as Emacs lacks good project support and stable code completion

The pros:

  • Can import CMakeFiles.txt into an automatically created project
  • Best code completion you'll find on Linux, sometimes even better than Visual Stuudio when it comes to heavily templated code
  • Very good debugger integration
  • Available for all major platforms
  • Free (in both senses) software
  • version control software integration (SVN. Mercurial, git)
  • If you develop QT: Interface designer and more
share|improve this answer

The two most common suggestions you will hear are vim and emacs. Both are good programmable text-editors that are used by many developers. I am an occasional, amature programmer and an emacs user so here are some of the pros of using emacs:

  • Syntax Highlighting
  • Smart Code Navigation & Editing: c-mode allows you to quickly move between various sections of code or quickly comment large chucks of code.
  • In-browser Compilation: You are always a few keystrokes away from compiling your code.
  • Version control integration: Almost every major version control system is supported.
  • Debugging: GBD can be easily used from inside emacs.

This is really just scratching the surface of what you can do from inside emacs. The downside includes the learning curve, the amount of configuration that most people find necessary to do, and, depending on your hands, the key combinations. The nice thing is that the key combinations can be made a bit better by remapping CTRL and that once you have your basic emacs configuration you will likely only need the occasional modification. Here are some good resources if you are interested in getting into emacs:

share|improve this answer

In addition to mentioned by others I would advice to look at:

  • Anjuta - Gnome IDE
  • KDevelop - KDE IDE
share|improve this answer
I'm surprised so many people are suggesting emacs and VIM. Sure those are fine, but IDEs have come a LONG way and anyone still using vim or emacs as a primary IDE isn't doing so because they're better. KDevelop is awesome. I highly recommend it. – Falmarri Oct 6 '10 at 20:32
I disagree. I am using emacs for everyday use. It depends what you need and what you expect from IDE (I'm not sure about vim but emacs is IDE). – Maciej Piechotka Oct 8 '10 at 8:19

Eclipse is a good choice, because one IDE to many language. In addition you can install vim plugin, etc. How to install c/c++: Menu: Help->Install New Software->Add http://download.eclipse.org/tools/cdt/releases/galileo


In addition, you should see: http://www.eclipse.org/linuxtools/downloads.php

share|improve this answer

QtCreator is great, KDevelop, Netbeans.

Vim is also great if you learn how to use it.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.