Farid Zaripov wrote: >> -----Original Message----- >> From: Martin Sebor [mailto:sebor@roguewave.com] >> Sent: Tuesday, March 06, 2007 7:55 PM >> To: stdcxx-dev@incubator.apache.org >> 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