Wynfield Henman wrote:
> I have managed to confuse myself regarding libraries under cygwin,
> after reading extensively on building dlls under cygwin.....
>
> Please check if my understanding is correct.
> (1) For simple static libraries ld's output is fine.
> Because only cygwin code will access it.
>
> (2) Does this follow with *nix shared library format? (if only used by
> cygwin programs which
> emulate *nix (does it also know about shared library objects)?
>
> (3) The ms-dll shared library format is only necessary if we want
> ms-programs to be able to
> use the program.
>
There's no incompatibility of object format between Cygwin static libs
and those created by the MS compiler. Ditto for DLLs. There is no such
thing as shared libraries in the traditional UNIX sense on Windows. The
only "incompatibilities" between Cygwin built libs/DLLs and MS's are:
1. References to C++ in libs/DLLs built in one won't be resolved in the
other (this is true when mixing and matching C++ object code from any
compiler). This is not a problem for C code.
2. Calling Cygwin compiled code from a native executable needs some extra
steps to make sure that the Cygwin C-runtime initialization code gets
called. The reverse situation is not generally a problem.