Setidaknya ada tiga cara untuk melakukan ini secara native . Cara pertama dan paling portabel adalah menggunakan libtool. Setelah membangun pustaka lain juga dengan libtool, Anda dapat menggabungkannya hanya dengan menambahkan .la libs ke variabel libaz_la_LIBADD automake, atau langsung dari Makefile dengan sesuatu seperti:
libtool --mode=link cc -static -o libaz.la libabc.la libxyz.la
Dua lainnya setidaknya tersedia saat menggunakan GNU ar. Anda dapat menggunakan skrip MRI (dinamai misalnya libaz.mri), seperti:
create libaz.a
addlib libabc.a
addlib libxyz.a
save
end
dan kemudian jalankan ar sebagai:
ar -M <libaz.mri
Atau Anda dapat menggunakan arsip tipis (opsi -T
), yang akan memungkinkan penambahan arsip lain tanpa membuatnya bersarang di dalam, meskipun sisi negatifnya adalah jika Anda ingin mendistribusikan pustaka statis, objek yang terlepas akan hilang:
ar -rcT libaz.a libabc.a libxyz.a
Semua metode di atas dengan anggun menangani nama anggota yang tumpang tindih dari arsip asli.
Jika tidak, Anda harus membongkar ke dalam direktori yang berbeda dan mengemas ulang lagi, untuk menghindari penggantian nama anggota yang tumpang tindih:
mkdir abc; cd abc; ar -x ../libabc.a
mkdir xyz; cd xyz; ar -x ../libxyz.a
ar -qc libaz.a abc xyz
libtool
solusi berbasis :libtool -static -o new.a old1.a old2.a