2011-05-30 30 views
21

Bir arşiv dosyası nesne dosyasından oluşturulabilir:Nesne dosyası ve statik kitaplık (arşiv dosyası) arasındaki fark nedir?

ar rvs libprofile.a profile.o 

Nesne dosyası ile arşiv dosyası arasındaki fark nedir?

Bana öyle geliyor ki her ikisi de gcc ile doğrudan kullanılabilir, örneğin:

gcc *.c profile.o veya gcc *.c libprofile.a

Fark nedir?

+1

olası yinelenen [Neden statik bağlantı için .o bir .a dosyası oluşturmak?] (http://stackoverflow.com/questions/1852941/why-create-aa-file-from-o-for-static- bağlama) –

cevap

12

statik kitaplık hızlı aramayı izin vermek için bir dizin ile bir veya daha fazla nesne dosyalarının bir koleksiyon. Derleyicinin bunlarla nasıl ilgilendiği konusunda bazı küçük farklılıklar vardır. Bir nesne dosyası ile böyle bağlantı:

gcc f1.o libf2.a -o myexe 

veya steno kullanabilirsiniz:: kütüphanelerle

gcc f1.o f2.o -o myexe 

bunu da yapabilirsiniz

gcc d1.o -lf2 -L. -o myexe 

Ayrıca gcc DAİMA bağlanacaktır

.o dosyaları, ancak yalnızca çözülecek tanımlanmamış adlar varsa, yalnızca kitaplıkları arayacak ve bunlardan bağlantı kuracaktır. arasında

+0

Butterworth, ancak 'gcc' alternatif bunları kullanabilir veya .o kullanıldığı, en azından, .a da kullanılabilir, tamam mı? Ben işaret olarak –

+0

Evet ama, kullanım biraz farklı olabilir. –

İlgili konular