Bir FreeBSD makinesinde, çalışma zamanında libFoundation.so dosyasını bulması gereken bir ikili "CeeloPartyServer" var. İkisi de aynı dizinde. Linker flag "-rpath = $ ORIGIN" kullanarak CeeloPartyServer (bir çapraz derleyici kullanarak başka bir platformda) derleyin.
> readelf -d CeeloPartyServer |grep -i rpath 0x0000000f (RPATH) Library rpath: [$ORIGIN] > ls CeeloPartyServer Contents Foundation.framework libFoundation.so > ./CeeloPartyServer /libexec/ld-elf.so.1: Shared object "libFoundation.so" not found, required by "CeeloPartyServer"
Çalıştırmaya çalıştığımda neden kitaplığı bulamıyor? Tam bağlayıcı hattım: -lm -lmysql -rpath = $ ORIGIN. Ben gerçekten eminim ki, read-read analizim aslında kütüphane rpath'in $ ORIGIN olarak ayarlandığını gösterdiğinden, bende böyle bir şeyden kaçmak zorunda kalmam. Neyi kaçırıyorum?
Tüm varsayımlar doğru sağlıyorsanız eğer chrpath ve \ $ \ $ ORIGIN kullanıyorsanız. -z orijin işaretini kullanmıyorum, hiç bir yerde belgelenmemiş. Bunu çözüp çözmeyeceğini söylerim. – Nektarios