library created with gcc acceptable in MS VC++ application ?

Eljay Love-Jensen
Mon Apr 12 18:49:00 GMT 2004

Hi Anup,

 >By extension, if I stick to ansi C, can I mix gcc compiled libraries:

No, many vendors have their own compiled (.lib, .a) library format.

 >Do the answers apply equally to object files (.o, .obj)...?


 >...and shared/dynamic libraries (.dll, .so) ?

Yes, given the C ABI caveat.

 >e.g. can I replace a .so created with Sun's compiler on solaris with a 
gcc generated .so ?

Yes, given the C ABI caveat.

 >Do the answers follow from some kind of formal ansi C compliance contract 
(would appreciate a URL) or lack thereof ?

On Solaris, they have a well-specified C ABI specification.

On Windows, there is a well-specified DLL specification.  (But that doesn't 
extend to a C++ ABI for DLLs.)

Other platforms (Linux, Darwin, Amiga, Mac OS 9, et al) are in a similar 

 > Finally, here is the context of my questions
. My clients:
    . Applications - C/C++
    . Platforms - Windows, Linux, IRIX, Solaris, hp-ux, AIX ...
    . Development environments - MSVS, gcc, etc.. (native compilers)
. Me'self:
    . Algorithms - C (some Java, hope to use gcj)
    . Deliverables - plug-in libraries
    . Development environment - prefer GCC solely

Are your plug in libraries .DLL and .so files, with a C ABI?  Then that 
should work.

I'm not sure what you are using Java for, since Java compiles to bytecode 
for a JVM.

(In my opinion, the JVM is an operating system unto itself.  On par with OS 
X or Windows NT ... it just happens to be hosted on another OS.  That's a 
somewhat simplified view of things.)


More information about the Gcc-help mailing list