What is a good IDE for C/C++ on Linux

"A real coder doesn't use an IDE, a real coder uses [insert a text editor name here] with such and such plugins." We all heard that somewhere. Yet, as much as one can agree with that statement, an IDE remains quite useful. An IDE is easy to set up and use out of the box. Hence there is no better way to start coding a project from scratch. So for this post, let me present you with my list of good IDEs for C/C++ on Linux. Why is C/C++ specifically? Because C is my favorite language, and we need to start somewhere. Also note that there are in general a lot of ways to code in C, so in order to trim down the list, I only selected "real out-of-the-box IDE", not text editors like Gedit or Vim pumped with plugins. Not that this alternative is bad in any way, just that the list will go on forever if I include text editors.

1. Code::Blocks

Starting all out with my personal favorite, Code::Blocks is a simple and fast IDE for C/C++ exclusively. Like any respectable IDE, it integrates syntax highlighting, bookmarking, word completion, project management, and a debugger. Where it shines is via its simple plugin system which adds indispensable tools like Valgrind and CppCheck, and less indispensable like a Tetris mini-game. But my reason for liking it particularly is for its coherent set of handy shortcuts, and the large number of options that never feel too overwhelming.

2. Eclipse

I know that I said only "real out-of-the-box IDE" and not a text editor pumped with plugins, but Eclipse is a "real out-of-the-box IDE." It's just that Eclipse needs a little plugin (or a variant) to code in C. So I technically did not contradict myself. And it would have been impossible to make an IDE list without mentioning the behemoth that is Eclipse. Like it or not, Eclipse remains a great tool to code in Java. And thanks to the CDT Project, it is possible to program in C/C++ too. You will benefit from all the power of Eclipse and its traditional features like word completion, code outline, code generator, and advanced refactoring. What it lacks in my opinion is the lightness of Code::Blocks. It is still very heavy and takes time to load. But if your machine can take it, or if you are a hardcore Eclipse fan, it is a very safe option.

3. Geany

With a lot less features but a lot more flexibility, Geany is at the opposite of Eclipse. But what it lacks (like a debugger for example), Geany makes it up with nice little features: a space for note taking, creation from template, code outline, customizable shortcuts, and plugins management. Geany is still closer to an extensive text editor than an IDE here. However I keep it in the list for its lightness and its well designed interface.

4. MonoDevelop

Another monster to add to the list, MonoDevelop has a very unique feel derived from its look and interface. I personally love its project management and its integrated version control system. The plugin system is also pretty amazing. But for some reason, all the options and the support for all kind of programming languages make it feel a bit overwhelming to me. It remains a great tool that I used many times in the past, but just not my number one when dealing with "simplistic" C.

5. Anjuta

With a very strong "GNOME feeling" attached to it, Anjuta's appearance is a hit or miss. I tend to see it as an advanced version of Geany with a debugger included, but the interface is actually a lot more elaborate. I do enjoy the tab system to switch between the project, folders, and code outline view. I would have liked maybe a bit more shortcuts to move around in a file. However, it is a good tool, and offers outstanding compilation and build options, which can support the most specific needs.

6. Komodo Edit

I was not very familiar with Komodo Edit, but after trying it a few days, it surprised me with many many good things. First, the tab-based navigation is always appreciable. Then the fancy looking code outline reminds me a lot of Sublime Text. Furthermore, the macro system and the file comparator make Komodo Edit very practical. Its plugin library makes it almost perfect. "Almost" because I do not find the shortcuts as nice as in other IDEs. Also, I would enjoy more specific C/C++ tools, and this is typically the flaw of general IDEs. Yet, very enjoyable software.

7. NetBeans

Just like Eclipse, impossible to avoid this beast. With navigation via tabs, project management, code outline, change history tracking, and a plethora of tools, NetBeans might be the most complete IDE out there. I could list for half a page all of its amazing features. But that will tip you off too easily about its main disadvantage, it might be too big. As great as it is, I prefer plugin based software because I doubt that anyone will need both Git and Mercurial integration for the same project. Call me crazy. But if you have the patience to master all of its options, you will be pretty much become the master of IDEs everywhere.

8. KDevelop

For all KDE fans out there, KDevelop might be the answer to your prayers. With a lot of configuration options, KDevelop is yours if you manage to seize it. Call me superficial but I never really got past the interface. But it's too bad for me as the editor itself packs quite a punch with a lot of navigation options and customizable shortcuts. The debugger is also very advanced and will take a bit of practice to master. However, this patience will be rewarded with this very flexible IDE's full power. And it gets special credits for its amazing embedded documentation.

9. CodeLite

Finally, last for not least, CodeLite shows that you can take a traditional formula and still get something with its own feeling attached to it. If the interface really reminded me of Code::Blocks and Anjuta at first, I was just blown away by the extensive plugin library. Whether you want to diff a file, insert a copyright block, define an abbreviation, or push your work on Git, there is a plugin for you. If I had to nitpick, I would say that it lacks a few navigation shortcuts for my taste, but that's really it.

To conclude, I hope that this list had you discover new IDEs for coding in your favorite language. While Code::Blocks remains my favorite, it has some serious challengers. Also we are far from covering all the ways to code in C/C++ using an IDE on Linux. So if you have another one to propose, let us know in the comments. Also if you would like me to cover IDEs for a different language next, also let us know in the comment section.

Subscribe to Xmodulo

Do you want to receive Linux FAQs, detailed tutorials and tips published at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.


Support Xmodulo

Did you find this tutorial helpful? Then please be generous and support Xmodulo!

The following two tabs change content below.

Adrien Brochard

I am a Linux aficionado from France. After trying multiple distributions, I finally settled for Archlinux. But I am always trying to improve my system by stacking up tips and tricks.

Latest posts by Adrien Brochard (see all)

22 thoughts on “What is a good IDE for C/C++ on Linux

  1. Yes, I know many thinks it is "just an editor" but most of the things you mentioned there are I Emacs without adding models or packages.
    You have support for Vc. For make and compiler. For debugger and a terminal to test your program. There are syntax highlighting and support for ssh and scp if needed to upload to a server. You even have a sidebar. And everything configurable with a guide or coding with evidence, if you want to.

    The support for documentation is also great. And you also have support for manuals from within Emacs.

    So I was a bit disappointed that the ide Emacs wasn't here as number 10.

    • I use PyCharm from JetBrain (community edition) and it's a great IDE, I'm pretty sure CLion deserves a look.

    • Never used CLion, but PyCharm from jetbrains (Python IDE) is amazing. Probably the most features of any program I've ever seen, and super intuitive - when I start programming in C/C++, CLion is the first thing I'm trying.

    • The big problem with CLion is that if you're not working with CMake, it's of NO USE. Not knocking it, but while CMake is my personal preference for make systems, it is a negative if you're having to work with anything NOT CMake. A series of gmake files or any other build system means you're broken. It's a negative for many of the other fine (and I DO mean this...) IDEs on this list. Only ONE of them on this list and one other IDE actually allows you to work with alien build systems. Eclipse and SourceNavigator.

  2. Code::blocks is definitely the best! yes I know, you can add so many things to eclipse... but in that case I prefer to use Vim with some plugins. eclipse is really slow.

    • Qtcreator really is a great IDE. I use it primarily for development of Qt apps but I do also use it a little for kernel dev in C

      UDL

  3. I agree Code::Blocks is awesome. I have codelite installed but don't really use it.

    I just tried the plugins for code::blocks and it didn't seem to like Valgrind very much, it just churned butter for about 15 minutes until I killed it. (to install codeblocks plugins 'yum install codeblocks-contrib')

    The only other IDE that I ever use for C/C++ is Scite. It's very lightweight but very fast and simple.

    Great write up!

  4. I too was surprised at first by no mention of CLion, but I suppose it makes sense since JetBrains still considers it early access. I think the code assistance and debugging there are BOTH best in class, and that's pretty much... well... everything (unless you're a minimalist, but in that case you're probably using a text editor and compiling with a plugin or from commandline).

  5. Qt Creator. Runs native on Windows/OS X/Linux/BSDs, is fast, lean and mean, full of options, plus a RAD interface and multiple platform targets (console and GUI for Windows, OS X, Linux, iOS, Android, Blackberry and eleven more), supporf for debugging and profiling, etc.

  6. Oracle's SolarisStudio is a good alternative when working on a project that requires parallel delivery on Linux/x86-64 and Solaris/(x86-64 or SPARC). SolarisStudio runs on Java and provides its own C and C++ compilers & libraries and other tools such as a performance analyzer. I've found its workings on Linux to be largely identical to how it exists on Solaris. The C++ compiler includes nearly all of the 2011 standard. Personally, I find the tool a bit sluggish, especially for large projects. But for classroom work and for small projects, this is a good option if you are looking for an IDE that runs on both Linux and Solaris.

  7. Great write-up! I'm impressed with the progress & look of wxwidgets for which CodeBlocks uses, as well as the lightness of CodeBlocks. I may take some further time to experiment with CodeBlocks within the near future. CodeBlocks currently reminds me of an optimized Anjuta, but much faster and quicker.

  8. "A real coder doesn't use an IDE, a real coder uses [insert a text editor name here] with such and such plugins."

    It is like saying, a real Unix user doesn't use Linux, but [insert your favorite BSD distro here.].

    and

    A real Linux user doesn't use Ubuntu but [insert your favorite Linux distro here].

  9. I agree with the others, Qt Creator should be in the list, because you can use it for pure C/C++ programming. I think pretty much the same features that you mention for CodeBlocks apply for Qt Creator "syntax highlighting, bookmarking, word completion, project management, and a debugger".

    Thanks for the review, it is a lot useful for finding good alternatives for developing in C. I thought that MonoDevelop was only for developing C# :-)

  10. Atom is a good IDE if you want cross-platform and easily customisable. Although given the choice I still prefer vim and plug-ins the Atom editor is rather nice.

  11. I tried to use Code::Blocks. It is fast and lightweight and rather convenient, but the problem is that when I try to debug a C++ application it often takes 10 seconds to 5 minutes to step through a single line of code. And when it is stepping through a line of code, the CPU load is 100% (more exactly, one of the cores of my CPU is loaded by 100%). It often hangs forever, so I have to kill GDB and the process that has been debugged. The problem seems to be in Code::Blocks debugger plugin. I experience this problem on all my computers (4 of them) that have 32-bit and 64-bit Kubuntu installed (14.10 and 15.04) and and ARM board that has Raspbian 12.something. And it looks like no one is going to fix this problem, so I decided to switch to Eclipse (Luna) for C++ which is buggy and slow but at least it allows me to write code and debug it in IDE.

Leave a comment

Your email address will not be published. Required fields are marked *