req: using cygwin's gcc for creating static libs in msvc binary format (.a => .lib) # Re: static MSVC library?

Tim Prince tprince@computer.org
Thu Mar 10 10:03:00 GMT 2005


At 12:01 PM 3/9/2005, Christopher Faylor wrote:

>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.

When cygwin is used as a build environment for plain Windows compilers 
(e.g. CL, IFORT), it insists on making libraries with its own ar 
tool.  I've found it quite difficult to persuade it to use lib.  Maybe 
because the Makefile wants to use the alias AR for lib, and we run afoul of 
case insensitivity.  ar works fine for 32-bit builds.  link doesn't see 
64-bit objects in a library built by ar, because the /machine tag isn't set.
Anyway, it's hard to imagine anyone claiming .a files and ar don't work for 
32-bit builds with non-cygwin compilers.  Windows link has more complaints 
about the naming of .o files (which still work) than about the naming of 
..a.  Microsoft people say they hate seeing people use cygwin, but not 
enough to forbid people using Windows for programs which require cygwin tools.
BTW, I want to thank whoever made it so that cygwin runs right out of setup 
now on the 64-bit Windows 180-day trial version.  No more editing of 
cygwin.bat.


Tim Prince 


--
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/



More information about the Cygwin mailing list