2011-03-16 17 views
14

Ben .so dosyası oluşturdum bulmak ve konumu /opt/lib koymak ve aşağıdaki komutla benim ana programı derlemeye çalıştığınızda bundan sonra artık LD_LIBRARY_PATH için bu yolu eklendi edemez:/usr/bin/ld:

g++ -Wall -I/home/alwin/Development/Calculator/ main.cpp -lcalc -o calculator 

/usr/bin/ld: cannot find -lcalc 
collect2: ld returned 1 exit status 

birisi bana bu konuda yardımcı olabilir:

aşağıdaki hatayı alıyorum. Bu, ilk paylaşılan bir kitaplık oluşturmaya çalışıyorum. Paylaşılan nesneler, paylaşılan nesneler için bakmak için -L/opt/lib kodunu belirtmek için -L/opt/lib kodunu eklemeniz gerekir IDE

cevap

20

Derleyici parametrelere -L/opt/lib ekleyin, bu derleyici ve linker bu klasörde libcalc.so yolunu arar.

+0

:(eksik başka bir şey var olduğu ekledin :(Aşağıdaki alwin @ alwin-dizüstü bilgisayarına bakın: ~/Masaüstü/CPPTest $ g ++ -Wall -I/home/alwin/Geliştirme/Hesaplama/-L/opt/lib main.cpp -libcalc.so -o hesap makinesi /usr/bin/ld: bulamıyor -libcalc.so collect2: ld 1 çıkış durumu döndürdü –

+2

@Jay it's -lcalc, değil -libcalc.so –

2

Kod bloklarını kullanarak oluşturdum.

+0

, ben -L/opt/lib ben evet ben de hala aynı hata var denedim –

2

@Alwin Doss -L seçeneğini -l'den önce vermelisiniz. Muhtemelen başka bir yol yapmış olursun. Eğer arama yapmak görüntülenmesi, bu

g++ -Wall -I/home/alwin/Development/Calculator/ -L/opt/lib main.cpp -lcalc -o calculator 

not -libcalc.so 

Ben otomatik oluşturulan yapan ile benzer bir sorun var demeliyim gcc'ye

2

:) deneyin.

Derleme dizininizden kitaplık dizinine yumuşak bir bağlantı oluşturabilirsiniz. Ardından kütüphane "yerel" olur. Zaten önceki açıklamada bahsedilen gibi

cd /compile/directory 

ln -s /path/to/libcalc.so libcalc.so