![]() |
|
MinGW vs MSVC: Which one is worse? |
decepto
Member #7,102
April 2006
![]() |
So, I'm upgrading from XP to Windows 7 after giving it a test run last week. I thought maybe it's also time to bite the bullet and start using MSVC. To those of you that choose to explicitly use MSVC over MinGW (or vice versa), why do you use that compiler? I don't care about the Visual Studio IDE, because I would never use it anyways. I'll just use codeblocks or compile from the command line (or the monstrosity that microsoft pawns off as a "command line"). -------------------------------------------------- |
Kitty Cat
Member #2,815
October 2002
![]() |
I use MinGW because it provides better standards compliance (including better C99 compatibility, some POSIX, etc). Code compiled with Linux/OSX GCC has a better chance of compiling with MinGW with fewer changes than with MSVC. -- |
OnlineCop
Member #7,919
October 2006
![]() |
I second Kitty Cat's response. Since MinGW uses the same GNU gcc and g++ compiler, you're more likely to get the same warnings and errors when you compile code with it on Windows, Mac, and Linux/Unix. MSVC lets you get away with some things, and then doesn't let you get away with others, which gives you the cross-compatibility hiccups. I'd probably choose to go with MSVC if/when I need to compile DLLs, program the XNA framework, or do a few other things that MSVC has its niche for. Since it's designed "for Windows," I'd imagine that it has some tweaks that lets its programs play "as nice as possible" within the Windows environment, where gcc and g++ "work" but not as optimally. I just don't know, though. My biggest reason for MinGW is reason #1.
|
kazzmir
Member #1,786
December 2001
![]() |
Kittycat +1 But gdb doesn't work very well on windows, so MSVC is probably better in the debugging regard. I tried to port my game to MSVC so I could use its debugger but there were so many inconsistencies I just gave up. I program mostly in Linux where gdb works fine so it wasn't a big deal for me. BTW, I successfully ported my game to intel's compiler, icc, by changing exactly 0 lines of code. MSVC blows in the standards department. |
Matthew Leverton
Supreme Loser
January 1999
![]() |
Which is worse? A McLaren F1 or a Pencil Sharpener? I have no intention of driving the car, I just need to sharpen a pencil. So I don't need the chrome, I'm just going to stick a pencil in the engine. |
verthex
Member #11,340
September 2009
![]() |
In case you wanna let someone compile your MSVC work and they don't have a copy of it, they're screwed. That's one scenario that comes along a lot in my life. Namely, I'm the one that's screwed because I don't feel like spending 20 minutes installing a copy of it. I think mingw is better though, A) if you run into any trouble you're very likely to get the same support as with Microsoft, but its free. B) There's boost; which is free, and goes beyond anything Microsoft will ever give away for free. C) You're long term commitment to your code does not depend on Microsoft or Borland libraries. That's incase you wanna move over to gcc later in your development. So if you start using MSVC, stick to it as long as you develop that one special project you make. and there are compilers for C# that are free and opensource.
|
gnolam
Member #2,030
March 2002
![]() |
decepto said: To those of you that choose to explicitly use MSVC over MinGW (or vice versa), why do you use that compiler?
The debugger is probably the main reason I'd stick with MSVC even if I nuked my current system (the original reasons were "I upgraded my computer, MinGW was left to bit rot by incompetent devs, and I needed MSVC anyway for first university and then jorb"). GDB isn't even playing in the same league. And I haven't noticed any real difference in standards compliance between the two (when I need to go cross-platform I can compile on my EEE or a shell account at Uni) - and I'm using MSVC 8, which is 4 years old now. In my experience, they simply warn on different dodgy constructs. -- |
Goalie Ca
Member #2,579
July 2002
![]() |
gcc with -wpedantic -Wall -Wextra -std=c++0x etc. are pretty damned strict set of flags. ------------- |
torhu
Member #2,727
September 2002
![]() |
If you work on a solo project with 10 or 20 files in it, it's not going to matter what you use. Well, except when you need to debug, and the msvc debugger is pretty nice. But if it's 200 files of code someone else wrote, the IDE is going to save you a lot of time. |
decepto
Member #7,102
April 2006
![]() |
torhu said: But if it's 200 files of code someone else wrote, the IDE is going to save you a lot of time. That's very true. But I still prefer VIM with my plugins to any IDE I've ever used. Goalie Ca said: gcc with -wpedantic -Wall -Wextra -std=c++0x etc. This is the solution. I'll still write my code using GCC under linux and mac, but I'll make sure to use these flags. That should mostly save me when I'm under Windows, hopefully. gnolam said: I upgraded my computer, MinGW was left to bit rot... One reason I didn't upgrade to Vista was the lack of support by the mingw devs. I think this was solved over a year ago, but I had plenty of other reasons to not upgrade. This lack of support, again, is why I'm really considering MSVC. -------------------------------------------------- |
kenmasters1976
Member #8,794
July 2007
|
I do relatively few coding, mostly some simple Allegro related programs, and I use MinGW simply because it suits my needs so I see no point in changing it. I also like the fact that you can pretty much just take it to another computer and use it right away.
|
BAF
Member #2,981
December 2002
![]() |
What gnolam said. I mostly use C# these days anyway, but Mono, for the most part, tends to work very well. verthex said: A) if you run into any trouble you're very likely to get the same support as with Microsoft, but its free. B) There's boost; which is free, and goes beyond anything Microsoft will ever give away for free. C) You're long term commitment to your code does not depend on Microsoft or Borland libraries. That's incase you wanna move over to gcc later in your development. A) I find MS help communities to be more helpful in a lot of cases. But if you're paying for support with MS, it's going to be leaps and bounds ahead of what most OSS projects call support. B) I'm not too familiar with Boost, but it does work with MSVC as well. .NET is pretty awesome itself though, and free to boot. C) What? |
|