dinamik kütüphaneye statik kütüphane nasıl bağlayabileceğiniz, ben statik .a
(some_static_lib.a
diyoruz) kütüphane derledik. Ben bağlamak istediğiniz başka bir dinamik kütüphaneye bu .a
dosya inşa ediyorum (o libsomeDyn.so
call) (sağ ifade yani?).gcc (g ++) altında gcc
/usr/bin/g ++ -fpic -g O2 -Wall -Werror kullanmamak -boru -march = Pentium3 -mtune:
.so
derler rağmen, bennm
komutunu kullanarak.so
altında.a
içeriğini görmüyorum = prescott -OS -D_FILE_OFFSET_BITS = 64 -DLINUX -D_GNU_SOURCE -D_THREAD_SAFE -I ../../../../../../../../ -I ../../ .. /../../../../..//libraries -Wl, -rpath/usr/lib -o libsomeDyn.so some.o another.o some_static_lib.a -shared -Wl -x - Wl, -soname, libsomeDyn.so
01 altında some_static_lib.a
altındaki işlevleri görmüyorum. Neyi yanlış yapıyorum? o bağlama gelince
Yani statik kitaplığında bazı garip bağımlılığı var. Dinamik kütüphanede yer alan bir işlevi referans alır. Gcc'e, dinamik kitaplıktaki tanımlanmamış referansı bulmasını nasıl söylerim? Teşekkürler – bob
@bob - dinamik kitaplıktaki bir sembole başvuran statik kitaplıkta sorun olmamalıdır (bir statik kitaplığı bağladığınızda, komut satırında doğrudan .o ile aynıdır). Başka bir sorun olmalı ve yeni bir soru göndermenizi tavsiye ederim. –
Bu benim için bir çözümdü, ancak OSX'te birisi IRC'de önerdiğim gibi '-whole-arşivi'ne '-all_load' eşdeğeri olarak kullanmak zorunda kaldım. Umarım başkasına yardım edebilir! – vmonteco