David Abrahams wrote: > "Duft Markus" <[EMAIL PROTECTED]> writes: > >> When building with wgcc there are a few benefits: >> >> Wgcc uses the native windows compiler to build (so the code may or may >> not be faster ;o)) and whats a lot more important: the debug >> information produced is readable by visual studio, so you can debug >> the output. Gdb on windows (at least on interix) is so terribly >> broken, i could not debug 10 lines of code without gdb failing at some >> point. > > Works great for me under Cygwin, especially through emacs.
Code may not be faster. It really depends on the implementation of the compiler. The differences would be negligible from my understanding, though with more resources MS may be able to optimise some things in their compiler... I don't know. I do prefer the MS debugger, but my experience with GDB is that it also works fine in windows (Under Cygwin and with MSYS/MinGW) and achieves its purpose well enough (I guess not using emacs is part of my problem :-) as it seems a little more clunky to use having to type in all these breakpoints... I need a GUI frontend for GDB i think...) >> The second thing is, that resulting executables depend on msvcrt.lib >> and are therefore binary compatible with nearly everything ;o) on >> windows. > > That's also true of MinGW, right? Yes. MinGW depends on msvcrt.lib >> When using gcc it has it's own libc (on interix gcc is a >> interix build, and has really not much to do with windows.... ;o//) >> and one can't link those things together, so in gcc built binaries one >> can _not_ use the win32 API which, on windows, is not really desireable. > > Huh? Not so; I have used the win32 API even through cygwin GCC. > And then there's gcc -mno-cygwin. Yep. There is a win32api library for cygwin. Same as MinGW really with -mno-cygwin i think... >> The last thing is, that tools such as Rational Purify may be used to >> examine the resulting binaries. It's all just really native ;o) >> >> I'm really overwhelmed that someone outside my company finally shows >> at least _some_ interest. It's really cool, give it a try! > > Not sure what I'm missing here, but at this point I don't see why I > should bother. The existing tools work for me and are > well-established, with good support. > One possible reason I can think of is that in the non-free world... Sometimes a company might distribute a C++ library + some header files (Without any source code). I have encountered this before. Since the ABI is not the same between MSVC and MinGW/GCC it forces you to use the compiler they have created the libraries using (Unless it is a pure C interface) and if you have a desire to use the autotools build framework (autoconf/automake/libtool) then this could be useful. Having a wrapper for MSVC that behaves like gcc would mean that you can use the autotools (A particulary important part of it is libtool for this discussion) build framework with the MSVC compiler. This may be beneficial in some situations instead of using the MSVC build environment. I tried cccl a while ago and shortly discovered a HEAP of issues especially trying to compile things using libtool. So i went and started my own shell script wrapper that improved on cccl. It got a fair way but i was not willing to put more time into it and being a shell script like libtool it slows compiling down a bit on large projects. Plus there is no way to fix the auto import problem with MSVC. So i gave up on that line of thought. From my understanding, wgcc is a compiled wrapper similar to cccl but it has had a lot more features put into it so it better "emulates" gcc. This has got advantages though is not suitable in a lot of situations. Instead of using a wrapper for the compiler/linker i have just started using a different build toolset from automake/libtool. Jam and Scons are two good examples that can use either compiler without having to force the usage of MSVC to behave like gcc. Anyhows, Thats just my two cents worth on the subject... Brendon. _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool
