Just now I found that static libraries in *nix systems, in other words *.a libraries are nothing but archives of relocatables(*.o files) in ar fromat.
What about static libraries(*.lib files) in windows? Which format are they in?
I found an article (archived copy 1, archived copy 2) which explains *.lib file structure. But Where can I find "Official" specifications of *.lib file structure/format?
Other than ar.exe of mingw is there any tool from Microsoft which extracts relocatable objects of *.lib & *.a files?
EDIT:
I wonder why I'm unable to get to this question. If there are no official specifications. Then how does the compiler ('linker' to be more correct) writers work with *.LIB files?
I found that *.LIB file uses the ar
file format.
Official Specifications: Section 7. "Archive (Library) File Format" of Microsoft Portable Executable and Common Object File Format Specification describes this format.
mingw's ar
works just fine on *.lib files - even ones created under VisualStudio.
We've actually used it in the past to pull out parts of a library we needed when it contained some other stuff we couldn't link with (due to conflicts with other libraries). Kinda hacky, but it works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With