मुझे एक बाइनरी "सेलोपार्टी सर्वर" मिला है जिसे फ्रीबीएसडी मशीन पर रनटाइम पर libFoundation.so खोजने की आवश्यकता है। वे दोनों एक ही निर्देशिका में हैं। मैं लिंकर ध्वज "-rpath = $ ओरिजिन" का उपयोग कर CeeloPartyServer (एक क्रॉस कंपाइलर का उपयोग कर, एक और मंच पर संकलित)।
> 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"
जब मैं इसे चलाने का प्रयास करता हूं तो पुस्तकालय क्यों नहीं ढूंढ रहा है? मेरी सटीक लिंकर लाइन है: -lm -lmysql -rpath = $ मूल। मुझे पूरा यकीन है कि मुझे \ $ या इससे कुछ भी बचाना नहीं है क्योंकि मेरे रीडेल विश्लेषण वास्तव में दिखाते हैं कि लाइब्रेरी आरपीएथ $ ओरिजिन पर सेट है। मैं क्या खो रहा हूँ?
अपने सभी पूर्वानुमान सही हैं। मैं -ज मूल ध्वज का उपयोग नहीं कर रहा हूं, कभी भी इसे कहीं भी दस्तावेज नहीं देखा। अगर आपको इसका समाधान हो तो आपको बताएगा। – Nektarios