sadece olarak yaparsanız:
ar x a.a
ar x b.a
ar c c.a *.o
t eğer bazı nesne dosyalarını kayıp olacaktır Burada hem aa ve ba böylece aynı adla üyeleridir, farklı bir klasöre farklı arşivlerde üyelerini ayıklamak gerekir:
ayrıca daha
ar x a.a && mv *.o a_objs
ar x b.a && mv *.o b_objs
ar c c.a a_objs/*.o b_objs/*.o
, aynı adı taşıyan birden fazla üye bir arşivde olduğu posible (aa diyelim), eğer ar x aa'u çalıştırırsanız, aynı ada sahip üyeler için yalnızca bir tane alacaksınız. Eğer bir yazmak zorunda böylece
ar xN 1 a.a xxx.c.o && mv xxx.c.o xxx.c.1.o
ar xN 2 b.a xxx.c.o && mv xxx.c.o xxx.c.2.o
...
bu, sıkıcı bir iş olurdu:
bir arşivde aynı adı tüm üyelerini ayıklamak için tek yol seçeneği 'N' ile üye sayısını belirtmektir Bu işi yapmak için daha karmaşık betik.
Bir opsiyonel çözümleri tek bir paylaşılan kitaplığa birden fazla arşiv birleştirebilirsiniz şudur:
g++ -shared -o c.so -Wl,--whole-archive a.a b.a
bu şekilde bağlayıcı sizin için her şeyi idare edecek!
Ayrıca bakınız: [ 'libtool' bazlı solüsyon] (http: // stackoverflow. com/a/8170851/196561): 'libtool -static -o new.a old1.a old2.a' – osgx
, bu kütüphaneler ortak dosyalara sahipse, sadece küçük bir şüphe ile çalışır. Hala işe yarayacak mı? – bindingofisaac