Ben basit bir C ++ programı inşa ediyorum ve geçici olarak bir sistem tarafından sağlanan paylaşılan kütüphane geliştirme ve test için, daha yeni bir sürümü ile değiştirmek istiyorum.
LD_LIBRARY_PATH değişkenini ayarlamayı denedim ama linker (ld) ile başarısız oldu:
/ usr / bin / ld: -lyaml-cpp bulunamıyor
Çalışmasını bekliyordum çünkü ld man sayfasına göre:
Bağlayıcı, gerekli paylaşılan kitaplıkları bulmak için aşağıdaki arama yollarını kullanır: ... Yerel bir bağlayıcı için "LD_LIBRARY_PATH" ortam değişkeninin içeriği ...
Daha sonra LIBRARY_PATH ayarını denedim ve bu işe yaradı.
GCC kılavuzuna göre:
LIBRARY_PATH değeri PATH gibi kolonla ayrılmış bir dizin listesidir. Yerel derleyici olarak yapılandırıldığında, GCC, özel bağlayıcı dosyaları ararken GCC_EXEC_PREFIX kullanarak bulamazsa, belirtilen dizinleri dener. GCC kullanarak bağlama, bu dizinleri -l seçeneği için sıradan kütüphaneler ararken de kullanır (ancak -L ile belirtilen dizinler önce gelir).
(GCC) kılavuzunun da belirttiği gibi, GIB ile bağlantı kurduğum için LIBRARY_PATH çalışıyor.
Fakat..
- Ben gcc ile bağlantı beri hata mesajı önerdiği gibi neden ld çağrılıyor?
- İki amaca aynı amaca hizmet etmenin anlamı nedir? Başka farklar var mı?