C++ what other IDE other than VC++

Started by
68 comments, last by spielc 11 years, 7 months ago
@Aardvajk:[color=#006400] DEFINES += MY_DEFINE also works.


There are still some question marks for me with QT Creator .. one thing the classview doesn't seem to organize classes into folders, which is necessary when you are working on big projects, and when you double click on member funcs it takes you to the declaration rather than the definition (but the functionality is there to get to the definition, with a hotkey). But I gather the classview plugin is quite new so I'm sure they'll get round to it, and if they don't I'd be prepared to write it myself.

I'm not sure about the ClassView thing, but Ctrl+Clicking a function name switches between the definition and the declaration. I wish that if you Ctrl+Clicked a function us. it'd go to the definition first (instead of the declaration), so it takes two clicks rather than one.
I use Ctrl+Click to go to the definition of the function, and Ctrl+Click the definition to go to the declaration.
Advertisement
It just dawned on me, what are indie programmers that work on various libs e.g. SFML or SDL ect... going to start using now after VC++2012 is out? I mean most are not going to buy a $500 IDE unless they are making money with it....

Thoughts?

-1 to QtCreator. The RAD looks nice and looks like good integration with Valgrind (though not so much with gdb?). It just feels too bloated/user-friendly (we are, after all, programmers, not casual PC users) and biased towards Qt-products/-services for my taste. I do not mind having the option of using Qt and its RAD, but this should not overshadow the rest of the IDE.
I guess this is true when it comes to the default templates or the visual designers - but then surely the same is true with VS being biased towards the MS APIs?

Hmm, I suppose there is the issue of the whole qmake stuff, and the risk of writing code which is incompatible with standard C++ (e.g., signals and slots). Is there a way to disable that, to enforce standard C++, anyone know?

For being bloated, I was actually going to say the reverse: QtCreator runs fast even on my low end netbook, where Visual Studio 2010 is rather bloated.


It just dawned on me, what are indie programmers that work on various libs e.g. SFML or SDL ect... going to start using now after VC++2012 is out? I mean most are not going to buy a $500 IDE unless they are making money with it....

Thoughts?
Yes this is my worry - even if alternatives exist, it will lead to fragmentation as different people use different things. I remember it being this way before 2005 - some projects used commercial VS, meaning you either had to pay for that, or have to try compiling it with a different IDE/compiler, which was a hassle and had the risk of incompatibilities. Or if they didn't use VS, it might still be different to what you used.

So I fear we'll see a return to those bad old days of programming, making it harder for collaboration for indies and open source programmers.

(Though as for SDL, ISTR that they don't use VS at all, or not a recent version - as you don't need the later VS runtimes when linking to it.)

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux


It just dawned on me, what are indie programmers that work on various libs e.g. SFML or SDL ect... going to start using now after VC++2012 is out?

At the risk of sounding very annoyingly redundant: QtCreator? I use SFML in my project. I've made a SFML-only project using QtCreator, and AdventureFar (my current project) uses both SFML and Qt with QtCreator.

Despite the 'Qt' part of the QtCreator name, you don't actually have to use Qt... The GUI wizard builds Qt applications, just as other wizards in other IDEs probably build Win32 applications. But just like how in other IDEs, you can ignore the wizard and make what you want, Win32 or not, with QtCreator you can ignore the wizard and use what you want, Qt or not.

And hey, if there is a serious market there, I'd expect some company like Corel* to release a commercial IDE at a cheaper price ($75-90 dollar range). If the need is there, it will be filled - both by lower priced options and by opensource** options. Sure it might not be as perfectly high quality, but it'll be more than sufficient.

*Corel makes a Cheaper Microsoft Word competitor, WordPerfect, and cheaper Photoshop competitor, PaintShopPro, amongst other things. They aren't the only such company.
**OpenOffice - Free Word, Excel, etc... competitors. Maybe this will spur other opensource groups to release a high quality opensource IDE for Windows.

Other products will become available to fill the gap. Hey, Apple might sense an opportunity, seriously revamp XCode and port it to windows, using Clang by default, to get people to make more software for iOS and Macs. Who knows? People will adapt.

Hopefully this will garner more support for the Windows port of Clang.


Hmm, I suppose there is the issue of the whole qmake stuff, and the risk of writing code which is incompatible with standard C++ (e.g., signals and slots). Is there a way to disable that, to enforce standard C++, anyone know?


I don't think there's much risk of accidentally using signals and slots... But even if so, the code is still standard C++ (afaik, it's not an extension to the C++ language itself, they just have another pre-compile step that converts the signals and slots to valid C++). I think you can even compile code using signals and slots using another IDE (or another compiler), as long as you run it through the QMake build step first, but I'm not certain.

You could probably remove the Meta-Object Compiler (moc) as a build-step, though I can't find any info about that online. You could completely remove QMake and switch to using CMake in QtCreator instead (though that might be throwing the baby out with the bathwater - QMake isn't the problem, MOC is).

If you never use any Qt-specific macro (Q_OBJECT or Q_PROPERTY) you don't have a problem. Hey, if you never inherit from QObject class, you can't use Q_OBJECT or Q_PROPERTY anyway, and without Q_OBJECT you can't use signals and slots. QObject is part of the Qt api library, so if you're not using the Qt api, you don't need to worry about accidentally using signals and slots, and if you are using the Qt api, you can't avoid the signals and slots.

QtCreator uses GCC/MinGW. Whatever their preprocessors output, has to be compilable by GCC. As mentioned earlier, I even swapped out QtCreator's MinGW (which was at 4.5) to get the slightly newer MinGW 4.6 version, which means that QtCreator hasn't altered or modified the compiler itself, because my code still compiles fine with a vanilla version of MinGW downloaded from MinGW's SourceForge page. The Qt 'extension' to the language is three-fold: It requires you inherit from QObject, it requires you to use QMake which will run the Meta-object compiler, and it requires you to use the Q_OBJECT macro. If you don't inherit from QObject, you simply can't use the major 'extensions'.
I don't think there's much risk of accidentally using signals and slots... But even if so, the code is still standard C++ (afaik, it's not an extension to the C++ language itself, they just have another pre-compile step that converts the signals and slots to valid C++). I think you can even compile code using signals and slots using another IDE (or another compiler), as long as you run it through the QMake build step first, but I'm not certain.

To use other build systems, all you need to do is run the moc over each class that declares signals or slots. Compile and link each of the moc's output files into the same library as the input file. There is no requirement even to use qmake.

It just dawned on me, what are indie programmers that work on various libs e.g. SFML or SDL ect... going to start using now after VC++2012 is out? I mean most are not going to buy a $500 IDE unless they are making money with it....

Thoughts?


If MS hadn't changed the policy they could have just continued using VS2010.
Its not like it will magically stop working when VS2012 comes out.

If they wanted features that VS2010 didn't support then they would have had to found another solution, of which a few exist and if things had stayed the same I dare say more would have appeared.

Lets face it, if VS2012 Express wasn't going to support C++ libs/programs then people would stick to VS2010 Express, this would prevent a 'critical mass' going to VS2012 which means that VS2010 would stay the defacto standard on Windows for Open Source software (for those working with VS anyway). Chances are you'd still get a few people who would buy it and would then make sure libs worked with the new IDE.

In short; the sky isn't falling. the sky was never falling. the sky is very much where it was.
(Less so now that MS have said there will be a 'windows application' version of the Express edition).
I use vc++2010... from the commandline and notepad++ for syntax highlighting, tabs etc. It's way faster than the vc GUI.

In short; the sky isn't falling. the sky was never falling. the sky is very much where it was.
It would have been a pain and caused fragmentation in years to come - I mean, for people to stick with a 2010 compiler/IDE for years in the future wouldn't have sounded a good solution, even if it would work at the moment.


I don't think anyone said "the sky is falling", people said, what are people going to use instead.

(Less so now that MS have said there will be a 'windows application' version of the Express edition).[/quote]Well obviously - the discussion was before this news had been heard.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

you could try bloodshed dev C++, but I moved from that compiler to Visual Studio 2010, not sure why you don't like it. I used to hate it too but i got used to it, and it's actually quite good for debugging if you know how to use it :P

QtCreator is great*, it has intellisense, integrated debugger, and etc... I use it with MinGW (the GCC C++ compiler ported to windows). The version of MinGW that ships with QtCreator is 4.5 I think, but I manually upgraded to v4.6 which better supports the C++11 standard. (GCC is on 4.7, but that version hasn't yet been ported to MinGW and Windows yet - when it is ported, it'll almost completely implement the standard).


Hi i would be really interested in how you achieved that? Can this be done without having to rebuild qt-creator or is the switch a "compile-time option"? The problem is that i have some COM-Stuff in my qmake-project and it would be really helpful if i could get code completion to work and my hopes are that the newer version of gcc is better at working with the COM-macros

This topic is closed to new replies.

Advertisement