Kod yeniden kullanım amacıyla çeşitli kitaplıklara ayrılmış bir uygulama var. Windows'da tek yapmam gereken .dll dosyalarını yürütülebilir dosya ile aynı yola koymak ve bunları otomatik olarak bulur. Linux'ta (işlerin yollarını kodladığı için) LD_LIBRARY_PATH
çevre değişkenini belirtmek veya yürütülebilir dosyaları çalıştırmadan önce kütüphaneleri önceden yüklemek zorundayım.Yürütülebilir dizin olarak paylaşılan kitaplık yolu
-Wl,-rpath=<PATH>
bağlayıcı seçeneği kullanılarak yolu yerleştirme hakkında bazı şeyler gördüm ve yolu olarak .
kullanarak denedim. Ancak bu sadece geçerli çalışma dizinine bakar, yürütülebilir dizinin değil.
Varsayılan olarak (Windows'ta olduğu gibi) paylaşılan kitaplıkların yürütülebilir dizinine bakmak için bağlayıcıda belirtmenin bir yolu var mı?
Teşekkürler! Matt
$ ORIGIN'i kullanırken, linker'ın gerçekten görmesini sağlamak için $ 'nın uygun şekilde alıntılandığından emin olmanız gerekir. Komut satırından "-rpath \ $ ORIGIN" ve bir Makefile istediğiniz "-rpath \ $$ ORIGIN" –
Eclipse ve CDT kullanıyorum ve seçeneği çeşitli bağlayıcı bayraklarının altına koyuyorum. Ben -Wl, -rpath = $$ ORIGIN 'koyuyorum ve çıkış penceresinde tek bir $ ile gösterir. Ama işe yaramıyor. Birkaç varyasyonu denedim, ama hiçbir şey olmuyor. Linker sadece bayrağı görmezden geliyor gibi. Ben denedim: -Wl, -rpath = $ ORIGIN -Wl, - rpath = $ ORIGIN -Wl, -rpath =/$ ORIGIN -Wl, -rpath = $ ORIGIN/ -Wl, -rpath =/$ ORIGIN/ vb – CuppM
Orada ne olduğunu görmek için elfdump veya yerel eşdeğerini kullanın? Ldd'i kullan ve ne yazdığını görüyor musun? – bmargulies