compilers?

Started by
12 comments, last by jpetrie 16 years, 11 months ago
the thing here is that i just bought a new computer that runs windows vista, i hate it, i think, but the question is what is a good FREE compiler i can use with this system. i tried devc++ but i couldnt get any thing to link properly. any help would be very appreciated.
Advertisement
Try the Visual Studio Express Editions. C++, C#, etc. All are free, and a good introductory if you don't need all the full features.
Dev-C++ is an IDE, not a compiler (it uses a GGC port for a compiler). It's also a piece of junk -- easily one of the worst choices for a development environment on a Windows platform. Visual C++ Express, however, is an excellent option.
Quote:Original post by Nytegard
Try the Visual Studio Express Editions. C++, C#, etc. All are free, and a good introductory if you don't need all the full features.


Second that. But make sure to also get the Service Pack 1 for Visual C++ Express Edition and the Vista Update for VCEESP1 (these are two separate downloads!).
Quote:Original post by jpetrie
Dev-C++ is an IDE, not a compiler (it uses a GGC port for a compiler). It's also a piece of junk -- easily one of the worst choices for a development environment on a Windows platform.


I assume you mean GCC :-). What makes this a piece of junk, and one of the worst choices? I'm assuming you're talking about GCC and not the IDE itself...
Quote:Original post by Replicon
Quote:Original post by jpetrie
Dev-C++ is an IDE, not a compiler (it uses a GGC port for a compiler). It's also a piece of junk -- easily one of the worst choices for a development environment on a Windows platform.


I assume you mean GCC :-). What makes this a piece of junk, and one of the worst choices? I'm assuming you're talking about GCC and not the IDE itself...


I think he's talking about the IDE. The parenthesis indicate an aside that doesn't need to exist to comprehend the sentence. Therefore, the sentence can be read like "Dev-C++ is an IDE, not a compiler. It's also a piece of junk..." Coupling that with "one of the worst choices for a Development Environment" (bolds added) further indicates he was referring to an IDE.

C++: A Dialog | C++0x Features: Part1 (lambdas, auto, static_assert) , Part 2 (rvalue references) , Part 3 (decltype) | Write Games | Fix Your Timestep!

Quote:
I assume you mean GCC :-)

Oops. Yes, I meant GCC.

Quote:
I'm assuming you're talking about GCC and not the IDE itself...

I'm not, I'm talking about the IDE. But since you asked...
a) MinGW is, in my experience, a crappy port of GCC. It lags a bit (being a port) and generated poor machine code during my tests (admittedly, long ago, but I don't think the MinGW version that ships with Dev-C++ is new, since Dev-C++ is pretty darn dead itself). It's also not compatible with the same object format that Microsoft's compiler is, which is why you have to idiotic Dev-C++ "devpacks" which hamper your ability to use modern APIs, such as DirectX, effectively.
b) I don't like GCC in general for subjective reasons. For example, I think its error reporting is asinine. But that's just me.

As for Dev-C++ itself...
Quote:
What makes this a piece of junk, and one of the worst choices?

a) It's old. It hasn't been updated in a long time. It shows no sign of being updated. It's missing a lot of modern features that make writing code nicer, and the ones it has are poorly implemented.
b) It has a poor, limiting user interface designed to be easy for small trivial projects, but its next to unusable for large ones.
c) Devpaks. The word is "pack," people; omitting letters is not cool. This is not AOL.
d) gdb is a clunky debugger to use, even natively, and...
e) Dev-C++'s interface to gdb is "passable" at best.
f) It's not particularly extensible.
Quote:i tried devc++ but i couldnt get any thing to link properly. any help would be very appreciated.


I use MingGW with the Dev-C++ IDE. I've gotten the GameDev tutorials that I'm reading and the source code examples to compile just fine. Like you, I've also had link issues too but it's usually because the link parameters were not correctly specified or a library was not installed properly. For example, if I'm using Dev-C++ with the SDL libraries installed, I use -lmingw32 -lSDLmain -lSDL in either Project->Project Options->Parameters->Linker or type them on the command line when linking.

On a personal note, even though VC++ is now free, I still don't use it because I hear it isn't very ANSI C++ compliant, and when I'm learning I like the source code to compile right out of the box; VC++ is not open source either. IMO, that's the best thing about open source: if people think some software sucks, like MingGW or Dev-C++ for example, then they can go fix it since the source code is provided. Good luck fixing VC++...
Good judgment comes from experience; experience comes from bad judgment.
Quote:Original post by jesse007
I still don't use it because I hear it isn't very ANSI C++ compliant, and when I'm learning I like the source code to compile right out of the box;

Visual C++ is one of the most standard compliant compilers. Comeau definitely beats it and I think the newest GCC and Visual C++ is about equal when it comes to standard conformance. GCC does seem to have more stuff from the technical reports, C99 and C++0x though, but when it comes to the 2003 standard I don't believe it's ahead.

The version shipped with Dev-C++ is, as far as I recall, pretty old and probably less standard compliant than Visual C++.

Quote:IMO, that's the best thing about open source: if people think some software sucks, like MingGW or Dev-C++ for example, then they can go fix it since the source code is provided. Good luck fixing VC++...

Have you ever seen someone actually do that? It's open-source, but documentation for the code is non-existant and it would take enormous amounts of times to fix anything. Have you ever changed a single line of Dev-C++? Have you ever compiled it yourself? If not then I don't see how you consider it an advantage.

Dev-C++ is pretty dead and no one from the enormous open source community have taken up the task of even supplying it with a new version of the compiler. The only project I know of which is based on Dev-C++ is wxDev-C++ which AFAIK doesn't contain any improvements except the wxWidgets support.

VC++ have something called plugins instead. A standard way of adding functionality that doesn't break on the next release (your modified Dev-C++ code wouldn't work when a new release came along). This is functionality that people are able to actually use; see VisualAssistX for a good example of what is possible (fixing IntelliSense, a major component of Visual C++). Of course Visual C++ Express is a limited edition and therefore it doesn't support plugins, so it doesn't have this advantage over Dev-C++.
Quote:Original post by jesse007
On a personal note, even though VC++ is now free, I still don't use it because I hear it isn't very ANSI C++ compliant, and when I'm learning I like the source code to compile right out of the box;


I am a fan of open-source and standards-compliance, too. I do most of my development in Linux. However, I thought I'd point out that the new VC++ 2005 Express is much more standards compliant than VC++6 was. I would encourage you to try VC++ 2005 for your Windows development. I used Dev-C++ for a while and appreciate the work those guys did. It made sense to use that before the Express editions of Visual Studio came out, but it just doesn't compare now. In the Windows world, Microsoft tools are always going to be better and used by more people. For example, if you release a precompiled lib for Windows, you more or less must release a version for VC++. It is just the standard.

If you care enough about the ideology of open-source, I would recommend you run Linux and write cross-platform code. At some though, you'll want to do a Windows build, and VC++ is free, the standard Windows dev environment, and very powerful. If you are going to use the non-free Windows OS anyway, why not use the best tool for the job?

This topic is closed to new replies.

Advertisement