On Wed, Mar 09, 2005 at 02:25:46PM -0500, Jonathan Arnold wrote: >Christopher Faylor wrote: >>On Wed, Mar 09, 2005 at 06:32:09PM +0100, Arend-Jan Westhoff wrote: >> >>>It looks like changing a lib.a into a lib.lib might require only a rename! >>>(But I remember reading that debug formats differ between gcc and VC.) >> >>You're right. The only difference is the debug info. A cygwin .a file is >>roughly the same thing as a MSVC .lib file. >> >>But, of course, that was true back in 1999, too. > >Yes, just because the *format* is the same doesn't mean you can use a >LIB (or OBJ) file generated by one compiler when using another linker. >In fact, I'd be willing to bet dollars to donuts that it cannot be >done.
Mmm... Donuts. >This is due to lots of things, not the least of which is naming >conventions, stack usage, and internal structure differences. Static >libs are not, and never will be, cross-compiler, unless there is a >specific switch in a compiler that says "Generate VC++ compatible >object information" or some such. You seem to be speaking pretty forcefully for someone who doesn't know if there is a "specific switch... or some such". I'll just reiterate what I said. A foo.lib can be used interchangeably with a libfoo.a file. Except for the well-documented and frequently repeated problems with C++ name mangling, and the even more repeated problems with mixing the cygwin and msvcrt runtime libraries, there should be no problems with using a .lib file on the gcc command line or a .a file on the "cl" command line. In fact, I just tried it. I created two MSVC object files, put them in a .lib, and linked them with a program that I compiled using gcc -mno-cygwin. Then I put the same two files in a ".a" and linked them using "cl". You will have to play around with the right libraries required to satisfy things that mingw adds to an object file if you want to use msdev for linking but this is not an insurmountable problem. Getting this working with object files compiled without -mno-cygwin would be tricky (and maybe even not possible) but it's certainly possible to use msvc created .lib files with gcc and gcc/ar created .a files with msvc. -- Christopher Faylor spammer? -> [EMAIL PROTECTED] Cygwin Co-Project Leader [EMAIL PROTECTED] TimeSys, Inc. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/