usr/bin/ld: cannot-l<nameOfTheLibrary>
Benim program derlemeye çalışıyorum ve bu hatayı döndürür :
usr/bin/ld: cannot find -l<nameOfTheLibrary>
benim makefile komutu g
ve benim kütüphane için sembolik bir link başka bir dizinde bulunan benim kitaplığa bağlantı kullanıyorum.
Yapmak eklemek için bir seçenek lütfen iş var mı?
CEVAP
Linker ne aradığını anlamaya, ayrıntılı modda çalıştırmak.
Örneğin, WİTH MySQL desteği ile derlemeye çalışırken bu sorunla karşılaştım. Derleme sırasında böyle bir hata alıyordum:
/usr/bin/ld: cannot find -lzlib
Bazı Googl para yaptım ve insanlar emin olun ki yeri aynı tür farklı konular arasında geliyordu .dosya gerçekten var ve eğer doğru değilse, sürüm bilgisi dosyaya bir sembolik bağ oluşturun değil, örneğin, with.bu yüzden.1.2.8. Ama kontrol ettiğimde, with.bu yüzden Mİ var. Bu yüzden düşündüm de, kesinlikle sorun olamaz.
Çalıştırmak için=LD_DEBUG ile öne İnternet'te bir yazı geldi:
LD_DEBUG=all make
Çıkış hata ayıklama bir SÜRÜ var olsa da, aslında yararlı değildi. Her şeyden daha fazla karışıklık ekledi. Bu yüzden vazgeçmek üzereydim.
Sonra birden kafamda bir şimşek çaktı. Aslında ld komut için metin: yardımcı kontrol etmeyi düşündüm
ld --help
Bu, ayrıntılı mod (hayal) ld çalıştırmak için nasıl anladım:
ld -lzlib --verbose
Bu aldığım çıktı
==================================================
attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.a failed
attempt to open /usr/local/lib64/libzlib.so failed
attempt to open /usr/local/lib64/libzlib.a failed
attempt to open /lib64/libzlib.so failed
attempt to open /lib64/libzlib.a failed
attempt to open /usr/lib64/libzlib.so failed
attempt to open /usr/lib64/libzlib.a failed
attempt to open /usr/x86_64-linux-gnu/lib/libzlib.so failed
attempt to open /usr/x86_64-linux-gnu/lib/libzlib.a failed
attempt to open /usr/local/lib/libzlib.so failed
attempt to open /usr/local/lib/libzlib.a failed
attempt to open /lib/libzlib.so failed
attempt to open /lib/libzlib.a failed
attempt to open /usr/lib/libzlib.so failed
attempt to open /usr/lib/libzlib.a failed
/usr/bin/ld.bfd.real: cannot find -lzlib
Ding, ding, ding...
Yani, AYRICA benim kendi sürümü ile MySQL derleme diye sonunda bunu düzeltmek için (paketlenmiş sürümü yerine):
sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
Voila!