From: Karsten O. <wid...@t-...> - 2005-04-30 01:14:50
|
Hello, How is the compatibility of MinGW? Can i mix different applications, dlls, libraries and so on? Why there are problems, if any? Bye, Karsten |
From: Tor L. <tm...@ik...> - 2005-04-30 01:57:59
|
Karsten Ohme writes: > How is the compatibility of MinGW? Can i mix different applications, > dlls, libraries and so on? Umm, different in what way? Your questions is a bit incomplete. But let me guess. Are you asking whether you can mix applications/DLLs built with mingw with ones built with MSVC? Yes, if the following holds true: - The code is C, not C++. Or at least, the API between the separately compiled bits is in pure C. For C++, no way, and this is not a bug, it's intentional, couldn't be any other way. - You use the -mms-bitfields flag to gcc. Strictly speaking, this is necessary only if the public API of what you are building/using contains structs with certain kinds of bitfields, but easiest to use it all the time. - You use the msvcrt runtime in all separately built parts, unless you *exactly* know what you are doing. --tml |
From: Michael G. <mg...@te...> - 2005-04-30 05:00:22
|
> - The code is C, not C++. Or at least, the API between the separately > compiled bits is in pure C. For C++, no way, and this is not a bug, > it's intentional, couldn't be any other way. It is indeed intentional and not a bug but it definitely could be different. In fact there is hope that some time in the not so distant future we'll have ABI compatibility among differnt C++ compilers which in turn would means we could share C++ objects. At least I have been told that there is a committee trying to standardize the C++ ABI which is another way of saying the C++ objects are compiler independend and thus interchangeable. Best, Michael =2D-=20 Vote against SPAM - see http://www.politik-digital.de/spam/ Michael Gerdau email: mg...@te... GPG-keys available on request or at public keyserver |
From: Jonathan W. <jo...@tp...> - 2005-04-30 07:35:26
|
> At least I have been told that there is a committee trying to > standardize the C++ ABI which is another way of saying the > C++ objects are compiler independend and thus interchangeable. Being ABI compatible isnt the whole story. There are other things (like supporting all the functions in the runtime library of MS) that make being 100% compatible with MS harder. |
From: Michael G. <mg...@te...> - 2005-04-30 04:52:54
|
> How is the compatibility of MinGW? MinGW is API-compatible with MSVC++ (and MinGW). MinGW is ABI-compatible with MinGW of the same version. > Can i mix different applications, =20 > dlls, libraries and so on? Yes (within the above mentioned compatibility) > Why there are problems, if any?=20 You can't mix MinGW and non-MinGW C++ objects (as in exported classes) as that would require ABI-compatibility. If you need that you'll have to supply some wrapper code (which in turn I do in a couple of commercial projects). Note that this is also answered on the MinGWiki (including working examples). Best, Michael =2D-=20 Vote against SPAM - see http://www.politik-digital.de/spam/ Michael Gerdau email: mg...@te... GPG-keys available on request or at public keyserver |