What is the best C++ IDE for a *nix envirnoment? I have heard the C/C++ module of Eclipse is decent as well as Notepad++ but beyond these two I have no real idea. Any thoughts or comments?
-
Try the sister site, [*Software Recommendations Stack Exchange*](https://softwarerecs.stackexchange.com/). See [the Tour](https://softwarerecs.stackexchange.com/tour). – Basil Bourque Jan 29 '18 at 03:56
22 Answers
On Ubuntu, some the IDEs that are available in the repositories are:
There is also:
- Eclipse (Recommended you don't install from repositories, due to issues with file/folder permissions)
- Code::blocks
And of course, everyone's favourite text-based editors:
- vi/vim
- emacs
Its true that vim and emacs are very powerful tools, but the learning curve is very steep..
I really don't like Eclipse that much, I find it buggy and a bit too clunky.
I've started using Geany as a bare-bones but functional and usable IDE. It has a basic code-completion feature, and is a nice, clean [Gnome] interface.
Anjuta I tried for a day, didn't like it at all. I didn't find it as useful as Geany.
Kdevelop and code::blocks get a bunch of good reviews, but I haven't tried them. I use gnome, and I'm yet to see a KDE app that looks good in gnome (sorry, I'm sure its a great program).
If only bloodshed dev-c++ was released under linux. That is a fantastic (but windows-only) program. You could always run it under Wine ;)
To a degree, it comes down to personal preference. My advice is to investigate Kdevelop, Geany and code::blocks as a starting point.

- 76,030
- 23
- 64
- 76
-
4If only Bloodshed Dev-C++ was released under Linux, all those fantastic console apps ending in system("PAUSE"); would crash. Then maybe someone would fix the need for that stupid, unportable hack. – system PAUSE Mar 23 '09 at 22:24
-
3Dev-C++ is a buggy, unmaintained, pain in the rear. I stopped using it when I realised this. – Artelius Dec 25 '09 at 06:38
-
6Recently I've played a little with Qt Creator and it's nice. Cross-platform and free. Worth trying, I think – Alexander Malakhov May 04 '10 at 02:45
-
When I first started using c/C++ I thought it was very difficult to use. There were two things which made that so: Firstly, 4 years ago I was still using windows, which lead to the primary problem of having to use devcpp or Visual Studio. VS is great, but too complexer ide for someone who is just learning. devcpp was still stuck in the Windows XP era at this time, and so I presume it still it. – FreelanceConsultant Mar 07 '13 at 19:23
As a programmer who has been writing code under linux for many years, I simply cannot seem to move away from using Vim for writing code.
Once you learn it, and learn some of its more advanced features (Code Folding, how to use ctags, how to work with multiple buffers effectively, etc) moving to another editor is very hard - as everything else seems to be missing features that you're used to.
The only other editor with a superset of vim's features is emacs. I highly recommend learning one or the other - and if you have questions, don't hesitate to ask here or in #emacs or #vim on irc.freenode.net - there's a very large and helpful community that will help you learn what extensions or commands best suit the software editing problems that you're facing.
[Edit: A comment noted that "vim isn't an IDE", I agree. I don't like the IDE moniker because it means a gui with a project manager and a bunch of drop down boxes. I like to use the terminology "Good Tools". See Ted Leung's writings on the matter]

- 41,746
- 15
- 73
- 90
-
3I agree. I personally use vim. but I wouldn't call it an IDE, it doesn't feel like one. Feels better than one though :) – Vinko Vrsalovic Sep 17 '08 at 02:25
-
2But don't you feel you sacrifice some of the functionality that IDE's implement by using vim? For example within those many drop down menus there are functions such as refactoring code naming conventions across hundreds of files, how could this be done with a utility such as vim? – Mike Sep 17 '08 at 02:38
-
2Vim has its own scripting language, plus the ability to write scripts in a variety of scripting languages such as python, perl, ruby and lua. See here for an example: http://vim.wikia.com/wiki/Vim_as_a_refactoring_tool_and_some_examples_in_C_sharp – Jerub Sep 17 '08 at 03:56
-
1Vim is great but..I actually switched from vim to emacs for most text editing. It seems to have more features. However, since emacs has a learning curve, I still use CodeBlocks for C++. CodeBlocks has crashed a couple of times on me so I'll probably switch. – User1 Jul 18 '09 at 18:48
I'm surprised noone has mentioned Qt Creator, as it's available in most repositories, quite small in size and yet does most things I need very well.

- 10,080
- 10
- 57
- 92
-
-
1
-
-
It is the king of IDE's. I wish the Autotools plugin was a little bit better though. I say it's the king because it focuses on code editting, it's really fast and lightweight (*in the sense of responsiveness, it does use ~300MB of RAM, but way below ~2GB of others like eclipse or InteliJ*), It has powerful features for project building, and text manipulation across files, also it has a full featured c++ and c parser that makes my life very easy. – Iharob Al Asimi Feb 24 '16 at 17:44
I would recommend CodeBlocks.
Highlights:
- Open Source! GPLv3, no hidden costs.
- Cross-platform. Runs on Linux, Mac, Windows (uses wxWidgets).
- Written in C++. No interpreted languages or proprietary libs needed.
- Extensible through plugins
Compiler:
- Multiple compiler support:
- GCC (MingW / GNU GCC)
- MSVC++
- Digital Mars
- Borland C++ 5.5
- Open Watcom
- ...and more

- 219,335
- 46
- 382
- 435

- 16,560
- 16
- 61
- 78
I just use Emacs.
Emacs is a fantastic, stay-out-of-my-way-but-be-able-to-do-everything kind of IDE. See this other related question: Using Emacs as an IDE

- 1
- 1

- 20,538
- 18
- 127
- 187
My vote is KDevelop (I wish I had more points so I can "vote up", so I could just agree with others indirectly than comment).
I've been using Eclipse for about couple years now for personal use, convincing myself that "since IBM donated it, it must be good", but then I've discovered KDevelop and never turned back. Because I'm quite spoiled with Microsoft Visual Studio for professional use, thus KDevelop felt the most comfortable to me.
I want to enjoy programming as a hobby, not spend time looking up what ctrl-k-k and ctrl-k-b does. Like others has mentioned, whatever "feels right" to them is the best IDE. For me, KDevelop feels the most comfortable because I can concentrate on coding (I could probably remap the keys to other IDE's to make it feel like VS, but as mentioned, I rather invest my time coding, which is more fun).

- 6,487
- 3
- 39
- 47

- 3,013
- 3
- 20
- 22
KDevelop is nice, especially if you run KDE. It supports many languages, as an added bonus. I've found its embedded terminal really useful.

- 330,807
- 53
- 334
- 373
If you're coming from Windows & Visual Studio, you might find Code::Blocks meets your expectations.
That was my experience; I tried a few others first, but they all seemed to expect me to do a lengthy tutorial before I could start doing anything interesting - and with a dozen IDEs to try, that could take days.
With Code::Blocks there were no hoops to jump through, and very little mandatory cruft to learn before I could be productive. I still prefer Visual Studio, but Code::Blocks can open my Visual Studio projects, and it doesn't seem to want me to waste any time, so it's the winningmost *nix IDE for me.
I use the NetBeans C++ plugin and it's superb. I come from a Visual Studio background and the Netbeans project management is very similar. I tried KDevelop but found it a little flaky (this was 12 months ago, so it is probably better now).
I also struggled with dependencies using KDevelop - i.e. where a program requires a raft of libs to be built first - but Netbeans made this simple.
The only complaint is that being a Java app, it isn't particularly fast - very noticeable when running under VMWare.

- 76,700
- 56
- 158
- 197
Simply put, Netbeans. You have to try it out. It's so good. It's much better than Eclipse with the CDT plugin.

- 3,130
- 5
- 21
- 13
Netbeans has gotten some pretty good reviews for its C++ support: http://www.netbeans.org/features/cpp/
I've never used Netbeans or Eclipse for C++ development, but it's worth looking at.

- 86,244
- 97
- 390
- 689
I was a VisualStudio + VA-X user before I switched to ubuntu, and needed good auto completion and function navigation features in any IDE.
I have tried Netbeans,Eclipse CDT,CodeBlocks,Geany,Anjuta, KDevelop and finally settled for KDevelop since that was the closest I could get to VS+VA-X.
Eclipse & NetBeans are too heavy & sluggish for my taste. Most of the other IDEs have buggy/incomplete/dumb auto completion & other features; or they want to take control of your code and needs to be imported into projects; or they put 101 files in your source folder. Only KDevelop allowed me to have a simple link to my src folder and let me work. auto completion is not brilliant, but better than the others.
KDevelop doesn't blend well with my Gnome, but I can live with it ;)

- 31
- 1
Personally, I agree with the kDevelop crowd as well. Eclipse felt a bit bulky and mildly unstable. Something about kDeveloper just always feel right.

- 2,661
- 5
- 31
- 35
Ultimate++ [http://www.ultimatepp.org/index.html]
[edit]
It does have it's own C++ class libs (as Hernan points out), but nothing stops you from using any other class libs like the SDL, or you can roll your own. You can even use boost if you like, but I must say I find some of the supplied classes & techniques to be more useful.
What I appreciate most is it's brilliant integration with the debugger and very complete context-sensitive editor. It uses the standard compiler & debugger (gcc, g++, gdb) on Linux and the MS compiler/debugger on that platform.
The only (very small) gripe I have is the home-made names for projects (called Nest's & so forth). That is unnecessary and may even be off-putting to serious developers, but they are only names & I find I can easily ignore it.

- 7,069
- 9
- 54
- 80
-
I've used it and it's rather good, integrated with it's own C++ class library. – Hernán Jul 23 '10 at 18:44
The problem with most IDEs is that they want to have a certain degree of control on how the project is organized, and this could be a problem if you have to work on that project with other people. In my experience this leads to two series of related problems:
If you start a project in a particular IDE, they will layout for you a particular directory structure, file organization, file naming convention, build system, etc. Of course most of these options are customizable, but it's not always possible to adhere to specific conventions which you might be required to follow. Projects with a complex build system might be difficult to implement from within the IDE. Moreover, the project might not be suitable for external, independent modification; so for instance, if you are planning to write an opensource application, avoid making the IDE a dependency for the project.
If you import a project started elsewhere, chances are it won't be very easy to use all the features provided by the IDE. You will have to figure out how to hook the build system, the debugger (as the binaries might not be where expected), etc. This is especially true for large and complex projects.
The reason why these ares not a problem under Windows is that Visual Studio is a de-facto standard. Under *nix there's a tendency not to impose particular tools/editors when developing a project collaboratively, and this is why these "cross-IDE communication" problems arise.
As a final note, if you learn, say, kdevelop or netbeans, you might have problems if one day you have to work on a machine where installing those is problematic (e.g. you might not have a Java runtime available and you might not be allowed to install it). If you learn (say) Vim + plugins, you are way safer: you can keep your configuration as a .zip file on your webserver and be pretty sure that Vim will always be available everywhere.

- 18,272
- 7
- 49
- 77
I asked this question before to experience Linux users and they always say Vim and automake. I use Vim as my default editor in Linux and after a while it becomes intuitive. I learned it by working through some small examples while learning C++ so I could learn both at the same time.

- 1,355
- 10
- 14
-
2Saying 'automake' makes me sad. :( I don't say automake, I don't hate you. – Jerub Sep 17 '08 at 02:44
I can't really vouch for the Eclipse module, but that might be attributed to the fact that I'm on Windows and have nearly no idea what I'm doing.
Can't go wrong with your favorite text editor though.

- 51
- 6
Eclipse isn't bad, but you have to do things Eclipse's way. Eclipse has some built in ideas on directory layout. For a new project, Eclipse is a reasonable choice. Importing an existing project into Eclipse may require some restructuring.
I used to use Eclipse under QNX for C++. The QNX people actually developed the C++ capability, so QNX would have an IDE.