Farid Zaripov wrote:
-----Original Message-----
From: Martin Sebor [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 06, 2007 7:55 PM
To: [email protected]
Subject: Re: [PATCH] RE: Cygwin cannot find -lstd12d
But in this case using both variables have the same
effect because
the linker used only when shared library built.
Okay, so --out-implib is only needed/allowed when creating
the library. http://www.mingw.org/docs.shtml has an example
of how to create a shared library on MinGW. It uses the .dll
suffix rather than .so for the name of the library. We have
.so. Should the name of our library be changed to .dll or
does it matter?
It doesn't' matter. Dll is just an extension of the file.
I thought Windows understands the .dll suffix as meaning
something special. Just like it does .exe and, AFAIK, will
refuse to execute files with no extension (as silly as that
is).
(I'm sure it would matter if the user wanted
to link the shared library in a program using MSVC.)
In my opinion it is bad thing to link a program with library built on
Cygwin
using MSVC. The config.h files are different.
You're right, it could be risky and hard to get right. But
it is possible to do nonetheless (for example, by exposing
a C API to a library implemented in C++).
Looking through the lib/ directories in a Cygwin installation
I see .a files and .dll.a files, and also a few .la files, but
no .so's. We should probably follow their example and give our
shared library a suffix that corresponds to the shared library
suffix Cygwin uses. I'm guessing it's .dll.a?
And also the library,
build on
cygwin, depends on cygwin1.dll and that library (size 1.8Mb) should be
distributed with the program.
True.
Martin