views:

3019

answers:

15

What's the best stable C++ IDE with a GUI that runs on linux?

+10  A: 

Staying on the realm of the free stuff, probably Eclipse with its C++ plugin, otherwise I code using g++ + gdb + make + gvim + other gnu stuff. The results are awesome, but the learning curve is severe.

Depending on what are you coding, there's Qt designer and KDevelop, too, but I haven't used them.

ADDED: Reading back your original question, you seem to want something (a list of programs) that's not yet an IDE, though it offers a GUI. I don't remember any GUIs for gcc, but gdb did have a GUI called DDD. So you'll have to use the console at least some of the time.

Adriano Varoli Piazza
Eclipse with C++ additions is called Eclipse-CDT by the way.
Adam Pierce
Eclipse all the way baby!
Nailer
Upvoted for the GNU utils...
Nick Presta
+3  A: 

Eclipse is good. Netbeans with it's plugin is also nice. You could also use Kdevelop(very configurable).

If you want GUI Moranar mentioned QT desiner. There is also Glade(GTK bindings), and WxGlade(wx bindings for several languages including C++).

J.J.
A: 

I'm not sure if your question is an exact duplicate but this has been discussed several times. See this answer for a good listing of all the other Q & A threads where this has been discussed. Or select the IDE tag.


Edit:

I suppose this will probably sound nasty but I can't think of another way to say this so apologies in advance if this sounds rude:

As far as I know (and I'm sure people will correct me if I'm wrong) the main difference between an IDE and an editor/compiler combo is the presence of an integrated debugger. Since I cannot imagine doing serious development work without a debugger handy, why not just say "IDE" and be done with it? I mean you'll need a debugger anyway--why not just get the whole thing in one package and call it a day? If you really don't need a debugger around then please share what sort of development you're doing that you only need to write and compile code without ever needing to debug it.

I understand the "if you don't use it, don't pay for it" philosophy but I think saying "Well, I'll just get an editor and compiler because I don't need the extra overhead of an IDE" is just a false proposition in this particular case.

Onorio Catenacci
One simple answer: PHP. Perl. Python. Any other interpreted language that is so dynamic that using a debugger is overkill.Or, any language that can let you use gdb from the console.
Adriano Varoli Piazza
You don't ever need to debug PHP? You never have to debug Perl? I take it you simply drop trace statements in the source code? I don't care if you're using a dynamic language or not--at some point you're going to have something that's not working as expected and you'll have to deal with it.
Onorio Catenacci
No, an IDE often adds implicit make, navigation to related files, possibly browsing objects/class diagrams, a GUI for compiler settings.
Andy Dent
+1  A: 

I like SciTE on linux and windows.

It's very lightweight, and customizable.

KeyserSoze
A: 

Sun Studio includes a full IDE plus a very high performance compiler and is available for Red Hat (or CentOS) and SUSE Linux platforms as well as Solaris. It is free but is not, at this time, open source to the best of my knowledge.

Scott Alan Miller
+9  A: 

Code::Blocks works well as a C++ IDE for both Windows and Linux. I now use it exclusively at work (on both platforms), and much prefer it to the likes of Visual Studio. I find the code completion tends to work a bit better too!

It's pretty good at picking up available compilers and works with gcc, MinGW and the Visual Studio compiler and it also has debugging capabilities.

Dan
+1  A: 

I suggest Eclipse since it's a very easy IDE to use for beginners. It's also available for Windows and Linux. The one of the most useful feature is auto completion. Also, there's a large community that will be able to answer any questions you have regarding it.

lazy coder
+1  A: 

Eclipse and Netbeans are both fantastic for all supported languages. Eclipse used to be much faster, netbeans caught up and is a big more functional, cleaner and supports more languages.

Also, if you consider it an investment that you don't want to reproduce, go with Netbeans--they currently have the most activity of the open-source editors and it's increasing.

Personally I prefer to be environment agnostic. I learn what I need to know about whatever environment I'm working in without getting too attached to keybindings and particular layout tricks, stuff like that.

I still run into people who use emacs and love it (and some who use VI!). They feel they can't change because of their investment in learning keystrokes. To me that seems a little self-defeating (you are denying yourself the use of newer/other tools by becoming attached to a specific keyboard layout) but whatever.

Bill K
+2  A: 

I'm going to put my two cents in here. I really enjoy KATE (part of KDE). It's the editor used in KDevelop, but doesn't serve as an IDE. Rather, it has a built-in command-line, so you can issue the build commands yourself. On a project with Make or Scons or Bjam or something else set up (very easy to write a short Bjam file for your project), you can just issue the build command directly.

I like KATE because it has features of an IDE without the bloat. It doesn't have refactoring support, unfortunately, but it does have a symbol browser which I don't use enough.

coppro
+4  A: 

SciTE is a good "programmer's editor", and it was especially written for that purpose. The engine behind it, Scintilla, has also widespread use in IDEs. The de-facto compiler on Linux is GCC, and it's a very powerful and stable one, too. You should go for GCC 4 or later for better C++-Performance.

SciTE has basic support to integrate the compiler (push a button and see the compiler's output, rudimentary code completion,..), too. The most important thing about SciTE is, that you have to edit it's own config first to make it a comfortable editor. Many important features like line numbers, file tabs, restoring sessions, are disabled by default.

You also need to familiarize yourself with the (admittedly easy) Makefile format, so you can use make for building. SciTE + make are not a subsitute of a good IDE in any way, but if you don't want to use a full fledged IDE, they are surprisingly good at still keeping you productive.

ypnos
+2  A: 

When it comes to development in a Linux environment there are 2 ways you can choose from: If you want to manage your project in a all-in-one fashion, you should go for KDevelop.

It is the most advanced and stable IDE i have worked with so far (in a Linux environment). Code::Blocks, Eclipse CDT, Netbeans are very powerful as well, but from my experience KDevelop has everything the other IDEs have to offer and more. But you should checkout the other IDEs for yourself, since this is my opinion.

The second and more time-consuming way is to get to know the gnu development toolchain Moranar mentioned. gcc/g++, make, gdb/DDD, valgrind,(g)vim/scite ... .For testing purposes its also recommended to familiarize yourself with a scripting language like perl or bash script. It saves hell of a lot time ...

If you want to get the job done fast you should stick to the IDE solutions, but if you want to be a more complete, more capable developer go for the gnu toolchain. I haven't regret it so far.

p.s. if you choose scite as your editor, ask ypnos (the guy above me) for his config. It has everything you'll going to need and its easy on the eyes too :)

zhengtonic
+8  A: 
Johannes Schaub - litb
A: 

SciTE + scite-debug == All I have ever needed

SciTE: http://www.scintilla.org/SciTE.html scite-debug: http://scitedebug.luaforge.net/

A: 

KDevelop, code::blocks, Eclipse

brunoqc
A: 

I think Qt Creator that comes with Qt SDK is the best choice, whole package is now LGPL and runs on Windows, Linux and Mac OS.

Raf