I've been trying to decide how to manage my C++ projects. Originally I used Code::Blocks, and that worked fine until I switched to Visual Studio 2008 for the GUI (originally .NET, then MFC, then C#, then Qt, now I think I'll build a separate Qt application and communicate via boost:rocess or otherwise).

So now I've just got 4 projects (2 libraries, 1 console application, 1 Qt GUI application) all with open source dependencies.

I'm trying to switch my main environment from Windows XP to Ubuntu, but have builds on both. I can't bring Visual Studio along with me, hehe. I tried KDevelop, but it has annoying path issues. I tried Eclipse and NetBeans. Both seem to work good on both Windows/Linux. I'm not a fan of Eclipse. However both use MinGW on Windows. Some people here have expressed dislike with MinGW. How about using GCC on Linux, and MSVC9 compiler on Windows? I read NetBeans on Windows cannot use MS compiler. I looked around but didn't find much info about Eclipse. Whereas Code::Blocks comes with the option to change compilers. However I've heard it's buggy, on Linux especially.

My project files are in a separate folder from my source files.

CMake seems to be all the rage. I guess with that option you only use the IDE as a text editor. Which is why a lot of people say use VIM/Emacs/Beany text editors. CMake generates project files for Code::Blocks, Eclipse, etc. but it seems like you'd still have to edit both your CMakeList's AND the project. KDevelop is suppose to solve this issue, but there doesn't seem to be a Windows IDE that does also. Unless you hook KDevelop up to MinGW cross-compiler. Which would probably be a bad idea. I don't want to use CMake and a compiler straight up because debugging wouldn't be as easy, and hierarchy/class views are handy.

I can't decide between NetBeans-GCC/NetBeans-MinGW, CodeBlocks-GCC/CodeBlocks-MinGW, and CodeBlocks-GCC/CodeBlocks-VC9, NetBeans-GCC/VS2008-VC9, CMake KDevelop-GCC/VS2008-VC9.

<joking>This is why people switch to Java</joking>

What's holding me back is NetBeans vs CodeBlocks vs KDevelop on Linux, and VC9 vs MinGW on Windows.

I don't really know what the question is. I'm just throwing this out there. Maybe someone can correct me, and/or point me in the right direction. Thanks.