Best C++ IDE or Editor for Windows - c++

Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
What is the best C++ IDE or editor for using on Windows? I use Notepad++, but am missing IntelliSense from Visual Studio.

Um, that's because Visual Studio is the best IDE. Come back to the darkside.

I've found the latest release of NetBeans, which includes C/C++ support, to be excellent.
http://www.netbeans.org/features/cpp/index.html

I personally like Visual Studio combined with a third party add-in such as Visual Assist (http://www.wholetomato.com/). I've tried a few of the others and always ended up back with Visual Studio. Plus, Visual Studio is a widely used product in development industries, so having experience using it can only be a plus.

The Eclipse CDT works well for me. It supports MinGW and Cygwin as targets. It also integrates well with CVS and Subversion.
The latest build, Ganymede, is available here.

There are the free "Express" versions of Visual Studio. Given that you like Visual Studio and that the "Express" editions are free, there is no reason to use any other editor.

I vote for Visual Studio, but it seems that C++ is treated like second class citizen (not the compiler and stuff but IDE support) compared to .NET languages like C#, but hopefully MS will do something about it by the next version of Visual Studio (new standard is coming and they promised that 10 should be new 6).

VIsual studio is by far the best IDE but you can also take a look at Code::Blocks

I prefer to use Microsoft Visual C++ express on windows. Though the 2008 ide is fine, the 2005 express has better support for many of the open projects which you might want to participate in. It's a pain to compile Firefox or a half life 2 mod on 2008. Also as a general tip when looking for software, I like to search wikipedia for "comparison of " In this case you would search comparison of Integrated Development Environments.
Hope that was helpful.

If you are interested in doing Qt development, then Qt Creator works fine and is free.

I think the debugger in Visual Studio (Express) is the killer thing that prevents me from using another IDE.

Visual Studio + Visual Assist X (http://www.wholetomato.com/)

There are some features in an IDE that are so transformative that you don't know how you lived without them. Integrated help was one. IntelliSense-like functionality was another. VS 6.0's Debug and Continue was absolutely killer. Visual Studio kicked butt for quite a while. Not bad, given the awful NeXTstep rip-off it all started as. (Or is it that memories of NeXTstep has faded until VS seems okay?)
Sure, there are much better EDITORS that VS, but as a complete package for Win32 development nothing seems to come close.
There are free Express editions now, but they seem pretty crippled.
I am quite enjoying Eclipse under Linux (and derivatives of it on Windows used in some FPGA vendor toolchains). I -really- don't like the lack of integrated MSDN-style help, though.
I think it's basically down to those two choices.

Emacs. Xemacs works fine under Windows. For using it as an IDE, I recommend running it under Cygwin.

The Zeus editor has support for C/C++ and it also has a form of intellisensing.
It does its intellisensing using the tags information produced by ctags:
alt text http://www.zeusedit.com/images/_lookmain.jpg

Visual studio is the most up to date and probably "best" free ide. Dev C++ is a little dated, and mingw doesn't compile most of boost, (except regex). Most of the other compilers are dated and fading, like mars and borland. But you can use whatever you like!

One that hasn't been mentioned is CodeLite, a powerful open-source, cross platform IDE. It has code completion amongst other features.

I will quote myself from this question:
https://stackoverflow.com/questions/780837/what-is-a-good-linux-ide-for-code-completion/917854#917854
Someone already said this before me,
but QtCreator is really good for Qt4
development.
Not only it has a really good code
completion support. It also knows a
little more about the code and what to
complete then I thought I needed. For
example it knows about slots/signals.
This means that connecting
slots/signals via code is much easier
then before.
The code editing is really nice. I
remember that when refactoring code,
(a few variables starting with
underscore) it remembered the cursor
position between lines and this made
the refactoring much easier. The code
indentation is smart enough to not get
in my way (KDevelop was configurable,
but QtCreator learns how I code. At
least it feels like it does).
Then there are the cool key
combinations. Most of the
functionality of the IDE can be
accessed using shortcuts. The
"control+k" thingie is a nice thing,
which some command line users would
like, but I am more GUI oriented. I
don't use it.
What I really like, is the split
window command. Yes, KDevelop3 does
it, but not as nice as QtCreator. My
favorite is control+e,3 which I use to
display the header and implementations
of my classes. Once again, the
navigation here is the best I have
seen (control+e,o).
It also has a nice SCM integration. I
usually use SVN, and quite frankly
it's not as good as I need: no
shortcut to diff the project, no diff
to commit the whole project, no option
to commit several files.
I also don't like the "total
integration of external tools". I
still like the external QtAssistant -
control+tab is easier to read large
articles. But.... when you define a
QString s, and 3 lines bellow you want
to read the interface of QString, you
put your cursor on "s" and press F1 -
the assistant comes as a sidebar with
QString's documentation. A huge
advantage.
Want to follow a definition? F2 to the
help. F4? Changes
header/implementation (yes, eclipse
does this better...).
The debugger is good. It's not as good
as VisualStudio but ... it has support
for Qt4 internals (you can see the
value of QString and QList!).
I can continue... but IMHO you will
need to give it a second and third
try. It really is a good product. Not
as flexible as Eclipse (hi
ryansstack), but it's a really small,
fast and young project. I stopped
developing QDevelop because I really
found what I was looking for.
ps: yes, I mean stopped developing
QDevelop. I was in the development
team.
My response is for Qt4 development only. Be warned.

SlickEdit is very cool, and does support something like intellisense. At my current company I now use Visual Studio, and I've mostly gotten used to it - but there are still some SlickEdit features I miss.

As a complete all-in one package, Visual Studio 2008 is the best IDE for C++ development with Windows

Visual studio is great, but there are few tricks you can enhance it with. SonicFileFinder is one - helps you to search source files by partial match. You can map solution-tree to Alt+1, partial filename search to alt+2, and properties-window to alt+3. These are the three most used windows.
Another great tool that is ofter misunderstood is ctrl+shift+F shortcut for searching file contents. People dont use because it's so slow, but my advice is - deal with it. Searching the whole solution (or even all files in project folder) is only slow the first time you use it. Consequitive searches are as fast as jump-to-definition-feature.

I've tried SlickEdit, Notepad++, emacs, jEdit and Visual Studio. VS wins hands-down for Best Windows IDE.
jEdit is probably the best GUI cross-platform editor/almost-IDE, and emacs is probably the best terminal cross-platform editor/almost-IDE. The advantage with using these is that when you jump to a Mac or Linux box, you know how they work.
I tried Eclipse, but it ran like a no-legged dog it was so slow, so I didn't use it much. Maybe tech is better now, but eh.

With Intellisense, code folding, edit and continue, and a whole host of other features, Visual Studio is certainly the best IDE. However, for simple code editing, I often use UltraEdit. It has some great features not found in Visual Studio. One surprisingly useful feature is being able to select a column in the editor. You can find and replace within the column (useful for tabs vs. spaces wars...) delete the column, etc...

How about CodeBlocks, i find it so fine with me, especially the new 10.05 version.

I would recommend C++Builder, from Embarcadero, for C++ work and there is also a free version available. If you prefer Visual Studio, download one of free express editions.

Here's another vote for Visual Studio. The debugger and Intellisense are definitely it's hallmarks. While other IDE's offer code-completion, I've often found them to be somewhat sluggish in this area for some reason (sluggish being a reference to the speed at which code-completion occurs and offers selections).
Other than VS, NetBeans is a good polished IDE and is updated on a very regular cycle.

I think it's largely a matter of taste, but I would recommend begginers to stick to a pure editor (vi, emacs...) instead of a full fledged IDE so they can figure out the whole toolchain that modern IDEs hide.
Just for the record, my weapon of choice is Emacs.

personally i dont like microsoft......I hate to admit that visual studio is the best IDE i ever use.....Netbeans is gud but drasticaly slow....other free IDEs are useless..
so people try to stick with VS....

M$ VS2008 is a better IDE for this.

The question says specifically IDE so I am guessing thats what you want. In that case, the main options are Visual Studio and Eclipse CDT as stated above. Of those, I personally prefer Eclipse. However, don't necessarily limit yourself to an IDE. I prefer to use vim as my editor and WinDbg as my debugger. For compilation, your project will probably dictate this. I currently use NMAke on the command line.

Use Visual Studio 2010. You can get the full version free with DreamSpark

Related

Suggestion for C IDE?

I used to use gcc compiler on my unix machine. I am now forced to work on a windows machine. Is there any cool IDE or a simple editor for C with a unix terminal like feel (Black Screen and colored syntax on it :))
What other editors/IDE are as robust as gcc for windows? Also what is your personal favorite. I would like a try a few of the those before I stick with one.
Thanks.
Visual Studio. You can change the fonts & colors however you want. I have been using the same coloring scheme since Borland Turbo C++ back in the 80's -- yellow text on a dark blue background.
VIM or Emacs. Though I personally will never use anything other than VS :)
Cygwin is your friend. It gives you all the nice unixy stuff that you miss! :)
In terms of cool IDEs that will integrate nicely with gcc on Cygwin, you should try Netbeans, Eclipse (with CDT) - both require a decent JVM. If you do get Cygwin installed, there's xemacs and gvim I believe that you can get for it...
IMHO stick with Netbeans...
Zeus is a very nice programmer's editor. I just love it's Brief keyboard emulation.
IIRC DOS command prompt can change its color. Have you tried Cygwin and MinGW?
mingw is Minimum Gnu for Windows. There are several add on packages to it, but it has gcc and g++. Occasionally there is an issue with some tool not acting exactly right with executables having .exe on their end or / and \\ in output statements, but it's pretty decent. I can't remember, but I think that there may be some reason that you can't run gdb in Windows, but I could be wrong.
You can also get versions of most of the *nix text editors for Windows. gVim is available if you like vi or vim. Versions of vi and vim for the command line are also available, but don't always act right with resized windows. gVim and vim can do syntax highlighting if you tell them to in the configuration file.
The last couple of versions of Windows have had (or been able to freely download and install) PowerShell, which I suggest you get. It is different from a *nix shell in many many ways, but often (not always) you can get away with using it just like a *nix shell. If you use pipes in it you should know that it likes to turn everything into utf-16, though. The main good thing I've found when using it as a better DOS window is that you can resize the window more freely. You can still use old DOS windows, though.
Another alternative is cygwin, which besides just the command line tools, presents more of a *nix environment for your programs. It includes libraries that make things look more like you are running on Linux from your programs' point of view (simulating many Linux system calls, for instance). I used this a long time ago, but it had some pretty severe problems back then. I have heard great things about it since then, but I have not had enough of a reason to try it out again.
If you are used to a Unix-y feel and are looking for a text editor, I'd honestly avoid installing Visual Studio. It's a nice IDE, but it is very heavyweight and perhaps much more than you are asking for. That said, you might of course find that you like it, but be aware that you are potentially looking at a several-hundred-megabytes download, 2 gigs for the full package IIRC.
Netbeans is good too, but fairly heavy, and a little difficult to get set up correctly with C and C++, at least last time I tried. It's a good alternative to VS, though.
I'd go for a more lightweight solution, like Notepad++, vim for Windows, or my personal favourite, Geany - http://www.geany.org/
Getting the black background & colored syntax is possible on basically any advanced text editor/IDE nowadays.
As for the compiler, MinGW is probably your best bet. Or you could nick the compiler & toolset that comes with Visual Studio Express :)
Visual Studio will be your best bet. Others have mentioned the free Express version which will probably be sufficient for your needs. Visual Studio is not only an IDE, it has Microsoft's compiler bundled with it. Since the choice of IDEs is vast, I'll leave it to you to choose the one you'll be comfortable with.
The venerable GNU gcc compiler is also available on Windows using Cygwin or MinGW.
If you want something pretty cutting edge, compiler wise, you should check out clang. For various reasons, this is the C compiler to keep your eyes on. It's relatively new and was built with IDE support in mind.
When visual studio already being mentioned, I have to mention Slickedit, not a IDE but a fantastic editor.
http://www.slickedit.com
I recommend codelite - cross platform, free IDE designed for GNU toolchain.
Visual Studio 2010 has an express edition that's doanloadable for free.
link text
gcc via Cygwin is another awesome choice esp. if you want to use Emacs as your IDElink text.
Personally, I tend to use both. I heavily lean towards Visual Studio 2010, but occasionally compile using gcc to make sure that both compilers are working the same way. This used to be beneficial in the past (pre VS2010), but I haven't had much success in catching VS2010 make mistakes - yet.
In terms of the overall experience of integrated development, debugging etc., it's hard to beat VS2010.
Net beans
Code block
Dev c++
code lite are good IDE

Searching good Debugger for C++

i was wondering if there was a good debugger you can recommend for C++.
thanks for helping
Whats wrong with Visual studio unless you use linux.
ANyway my suggestion is Visual studio.
But this also depends on what sort of a c++ project you work with.
General answer: use whatever debugger comes with your IDE - something that knows about your project structure will help you immensely when navigating, setting breakpoints, inspecting variables, evaluating expressions, and possibly offering features like edit-and-continue instead of forcing a recompile. Personally, I find Visual Studio to have a pretty darn decent debugger.
If you don't use an IDE, your options are limited... especially if you want symbolic debugging. Your options will pretty much boil down to GDB (with or without frontends), or WinDBG on Windows.
i recommend emacs + gdb. best combination ever.
http://www.cs.cmu.edu/~gilpin/tutorial/
You basically have two choices :
the visual studio debugger if you're under Visual (just press F5)
GDB, and its various user interfaces (this goes from a harsh Emacs mode to QtCreator integration
For Linux you could also try Zero.
Intel has a debugger called idb which is nice and works rather well.
code blocks
Code::Blocks is a free C, C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable.
Finally, an IDE with all the features you need, having a consistent look, feel and operation across platforms.
Built around a plugin framework, Code::Blocks can be extended with plugins. Any kind of functionality can be added by installing/coding a plugin. For instance, compiling and debugging functionality is already provided by plugins!
Special credits go to darmar for his great work on the FortranProject plugin, bundled since release 13.12.
We hope you enjoy using Code::Blocks!

Setting up windows for C++

To quote the FAQ, 'No question is [...] too "newbie"'
What is the best way to set up an Windows system (vista, if that matters) to work with C++?
Preferably with a nice IDE, easy compiling of software (support for make files, etc.), but suitable for a beginner.
I would quite like the IDE to use a relatively portable format, such as makefiles and configure scripts, nothing too proprietary.
I would also like the ability to add new libraries etc. without much hassle, and work with the majority of C++ code others have written.
I am comfortable using the command line.
Thanks for the help, hopefully the question is clear. And apologies if it's already been answered, i did have a look for similar questions.
I know this is not exactly 'nothing to proprietary' but you should give a look at the free Express Edition of Visual C++. Under its covers you'll get all the familiar make and command line tools, but wrapped in a polished IDE.
If you're really comfortable with the command line then you can make an IDE from code editor on top of a compiler/debugger suite. MS's own command line tools come with the platform SDK (free) and you get an awesome debugger in Windbg. My personal favorite code editor is Code Insight. I wish so hard for a Mac version /sigh.
Microsoft's Visual Studio has a free express edition which contains pretty much everything you need to program c++.
For a Gui, the main choices are probably, MFC (old and ugly), CLR/.Net (new and confusing) or look at Qt(now LGPL) or wxWigets
There are quite a few good IDEs for C++ available on Windows.
The de-facto standard for professional software development is Microsoft's Visual Studio, which is available in different versions, like the free Express Editions. This will give you a great tool-chain for Windows development.
However, for a more "cross-platform" approach, you should have a look to the free Eclipse C++ Development Tooling, which is available for many platforms. As long as your own code is platform-independent, the whole project can be shared between Windows, Linux, Mac, etc.
Other alternatives are MinGW or CygWin that both allow to use the GCC toolchain on Windows.
Try the MinGW compiler, it will come with a C and C++ compiler, Make, etc--among many others. This can be used from the command line, pretty easily: g++ -o someprogram.exe somecode.cpp
As for an IDE, there are lots out there. Right now I am using Code::Blocks, and so far it's been really nice. As well, it already supports the GCC compiler, and sets many of the appropriate flags for you, so all you'll really need to do is hit the "build" button.
Some others you might want to try are Eclipse, which is really powerful, but lots of its "power" will be really confusing and difficult to use until you start getting used to it. Visual C++ is another one, which (obviously) would integrate very nicely into Windows. Of course, you could always use emacs :)
I suggest you evaluate CodeBlocks.
Microsoft's Visual Studio is powerful but rather proprietary. If you prefer open/portable stuff, I recommend Dev-C++ and Cygwin.
FWIW, I recently went through this and tried the VC++ Express and QT Creator based stuff. Coming from a linux/unix background I found that QT was a little better since it was using the Ming compilers and some make based constructs.
If you will only be hacking for windows I would go for Visual Studio. It will definitely save you time you can spend on coding instead. Most open source out there for windows either already have VC project, and if they don't it is usually very simple to set one up. And normally they have either make or nmake files for you to build VC compatible libararies to link with.

Is is possible to develop for windows, in C++, without Visual Studio? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I'm aspiring to work in real-time 3D graphics. I work almost exclusively in C++, with a healthy smattering of win32. Realistically, do I have any sane alternatives?
You can use the MSVC compiler without the IDE. That's probably your best bet. It's a good compiler, and it is the de facto standard for Windows development.
There is definitely nothing wrong with ditching the IDE and simply using the compiler.
I believe the MSVC compiler can be used from the Code::Blocks IDE with no problems.
Alternatively, invoking the compiler from the command-line is a tried and true approach too.
Eclipse: http://www.eclipse.org/
Code::Blocks is pretty cool: http://www.codeblocks.org/
Depends...
Cygwin/Mingwin gives you a compiler. Qt or wxWidgets gives you a GUI toolkit that's easy to use and both are portable.
I agree with the question though. Visual Studio is a pig. Its debugger is pretty nice, but the rest is a pig to work with (particularly coming from a OSS background where the tools don't generally try to lock you in).
You could also look at nmake and calling the VC++ compiler tools directly from the command line.
We use VC++ as a compiler / linker but use Jam to drive the builds. The actual Visual Studio is only used as a debugger. The benefit is that once we set up Jam to build a project in Windows, it takes minimal effort (frequently none) to get it working for Unix.
The Zeus IDE works just fine as a MSVC alternative. It can even import MSVC project and solution files.
A bit late to the party, but I'd like to add that in 2018 there finally begins to show up a viable alternative that is good enough to promise emancipation from the monopoly of VS on Windows C++ development:
Sublime Text as editor, with the following plugins:
EasyClangComplete, a decent (like, just working) replacement for Intellisense;
[optionally] Clang Format, for much more flexible source formatting experience than MS would ever come up with;
Clang-cl as a wrapper around Clang compiler aimed for maximum MSVC compatibility.
Unfortunately, Microsoft Build Tools are still needed for standard library headers, but the download size is nothing compared to the whole VS behemoth. The upside is that Clang-cl picks them up automagically and Build Tools somehow don't mandate that you let their executables go online to sign in and activate your free license yet!
Setting this all up to a working configuration is a bit more complicated than slapping together a VS project/solution, but it's totally worth it. As a bonus, setting things up manually might give you a better understanding of what goes on under the hood of an IDE.
One thing to miss might be the superb VS debugger... Well, if you're ready to break habits, the open source x64dbg might come to the rescue, ability to view and step through source code via .pdb files included (and yes, Clang can generate them now!).
Update: As of 2019, a much better and future-proof alternative to EasyClangComplete is using Clangd via LSP plugin.
Absolutely, but it's just a lot easier to use Microsoft's IDE to develop for a Microsoft operating system. When in Rome...
Eclipse is a good alternative.
The Code::Blocks IDE comes with the MinGW C++ compiler and support for wxWidgits. The IDE is pretty minimalist which may or may not be what you are looking for - I really like it.
Dev-C++ I have found very useful, and free :)
Very possible, Qt is your friend. Qt Creator is in RC stage too so something to look forward to. Until then you can use it with something like Code::Blocks. Code::Blocks itself is a great environment alone, and also has a lot of support for wxWidgets. If you're just looking for an IDE change, as previously mentioned, Code::Blocks can use compilers from other IDE's as well.
-John
SlickEdit (or a number of other editors that support ctags or something similar) makes for a pretty decent 'IDE'.
You can use these editors with makefiles (or other build tools) to drive pretty much whatever compiler you want (MVCS, mingw, Comeau, Digital Mars, whatever).
A couple employers ago, that's exactly what we did. We used MS compilers driven by makefiles and the main editor used was SlickEdit. We used the Debugging Tools for Windows package for debugging (a lot of what we did was kernel-mode). Worked out pretty well.
Wascana Desktop Developer is a distribution of Eclipse CDT configured specifically for developing on Windows.
I would recommend giving Notepad++, MSBuild, and the Windows SDK a look over. You could also use XBuild, but that is more MONO specific. Mind you, MSBuild, and XBuild are just automation tools, so you'd be spending more time with Windows SDK.
I'm sure to receive a lot of flak for this, but I find C++Builder to be a much easier IDE/compiler to develop Windows C++ apps with than MSVC. It may not be the cheapest solution, or have all the same bells+whistles, or be the most language-compliant (its 32bit compiler does not support C++11 yet, but its 64bit compiler does), but you can't really beat its visual UI designer and 3rd party component market.

Best C++ IDE for *nix [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
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?
On Ubuntu, some the IDEs that are available in the repositories are:
Kdevelop
Geany
Anjuta
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.
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]
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
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.
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
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).
KDevelop is nice, especially if you run KDE. It supports many languages, as an added bonus. I've found its embedded terminal really useful.
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.
Simply put, Netbeans. You have to try it out. It's so good. It's much better than Eclipse with the CDT plugin.
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.
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 ;)
I really like CodeLite. Check out it's feature page.
Personally, I agree with the kDevelop crowd as well. Eclipse felt a bit bulky and mildly unstable. Something about kDeveloper just always feel right.
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.
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.
At my old job we used SlickEdit for C++ development under Debian. It's cross-platform and quite powerful.
It's not free, though.
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.
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.
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.
Emacs works for simple things but I use Eclipse for any larger project.