4
votes

How can I turn multiple archive files into one big archive file on Linux (using binutils ar and / or GCC).

I tried doing things like ar rcs libbig.a libsmall1.a libsmall2.a and it doesn't work (the resulting libbig.a is empty).

1

1 Answers

6
votes

Just tried this on my machine and the problem seems to be that you need to extract the objects from the archives before adding them to the new archive:

ar x libsmall1.a
ar x libsmall2.a
ar rcs libbig.a *.o

Simply running ar rcs like you did produced an archive which contained two .a files, but tools (e.g. nm) were unwilling to look deeper into these files.