I have learned the basics of c++ and found out that different c++ compilers behave differently especially when it comes to errors.

I would like the community to advice as to which compiler is the most popular and if it can be used with .net so that once I develop an application I would like to to be portable to different platforms.


Thank you,

What operating system are you using? I personally like g++ the best, but if you use Windows you may want to go another route.

I haven't done much programming on windows, but when I did I used a compiler called mingw. I haven't had any problems with it, but like I said I haven't done all too much programming with it.

I am on windows.

Which is the compiler most widely used in the industry ?

For MS-Windows, Microsoft compilers are naturally the most widely used by professional programmers because, for one reason, MS-Windows was written by Microsoft compilers. Here is one testimonial to that statement. Professionals rarly use the Express version, which is intended for learning. The Professional version is probably the most popular versions of Visual Studio 2008 series.

I use Microsoft Visual Studio Professional

if you are just starting out i would recommend the express versions.

I've dabbled around in other IDEs and with other compilers but i happen to like the MS Vis-studio IDE /Compiler the best.

The MSDN Library microsoft offers is very compiled as well.

Microsoft all around has taken very good care of it's programmers.

> which compiler is the most popular
the two mainstream c++ compilers are g++ (part of gcc) and vc++ (microsoft). and it is probably a good idea to stick to one of these; they are the most popular and attract the best support from third-party library and tool developers. both are also good as far as standards compliance is concerned. both (the express version of microsoft; the compiler is identical to that in the professional version) are free (well, neither is really free in terms of what you can do with them; but both are free in that you do not have to pay for them).
if you do not mind paying for a compiler, the comeau c++ compiler http://www.comeaucomputing.com/ would be a good option.

> if it can be used with .net so that once I develop an application I would like to to be portable to different platforms.
the notion of portability in standard c++ is source code portability; all these compilers would give you that.
the only c++/CLI compiler (that generates CIL which could run on many platforms) is the one from microsoft. other CLI implementations (like mono) do not provide c++ compiler support.

I use Bloodshed Dev c++, for its free but work well, I have bit problem when using .dll and such but probably its because I'm new with c++. Beside i can always find the solution from net.

But if .net compability is what you want then I guess visual c++ from visual studio is for you.

the only c++/CLI compiler (that generates CIL which could run on many platforms) is the one from microsoft. other CLI implementations (like mono) do not provide c++ compiler support.

I think some Borland compilers will do that too.

The Bloodshed Dev C++ is an IDE. It uses MinGW (GCC).

I personally like the GCC.
Stroustrup likes the Microsoft C++.
Borland C++ is good too (but not always the best at standards-compliance).

Enjoy.

I would like the community to advice as to which compiler is the most popular and if it can be used with .net so that once I develop an application I would like to to be portable to different platforms.

.NET only works on windows and you need to use Visual Studio for it

.NET only works on windows and you need to use Visual Studio for it

you dont need to use the visual studio environment for .NET but it sure does make coding a hell of a lot easier :P

.NET only works on windows and you need to use Visual Studio for it

Well, that's the only official way of running it. .NET is actually just a runtime environment, similar to Java, and in theory you could run it on just about any platform (provided you had an implementation of the .NET runtime environment). On Linux, Mono is usually used to run .NET applications.

it may be worthwhile to clarify some terminology:
the Common Language Infrastructure (CLI) is an open specification (published under ECMA-335 and ISO/IEC 23271). Microsoft, Hewlett-Packard, Intel, and others worked to standardize CLI (2000) and it was ratified by the ECMA, with ISO standardization later (2003). CLI is a specification, not an implementation; it defines a virtualized execution-environment, a common type system and a common language specification that allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures.

CLR (Common Language Runtime) is microsoft's implementation of CLI (and contains extensions outside the CLI specification). the .Net Framework and the .NET Compact Framework (for portable devices) are two CLR implementations. microsoft has two other CLI implementations; Silverlight (for use in web browsers on windows and Mac OS X) and Shared Source Common Language Infrastructure (a reference implementation of CLI available under the shared source licensing program).

two non-microsoft open source implementations are Mono (an implementation of CLI and accompanying technologies, championed by Novell) and Portable.NET (from GNU, part of the dotGNU project).

from: http://en.wikipedia.org/wiki/Common_Language_Infrastructure

This question has already been answered. Start a new discussion instead.