यह पृष्ठ - - http://labs.qt.nokia.com/2011/10/28/rpath-and-runpath/ ld.so में पुस्तकालय खोज के लिए आदेश के बारे में कहते हैं:RPATH का उपयोग करें लेकिन रनपत नहीं?
Unless loading object has RUNPATH:
RPATH of the loading object,
then the RPATH of its loader (unless it has a RUNPATH), ...,
until the end of the chain, which is either the executable
or an object loaded by dlopen
Unless executable has RUNPATH:
RPATH of the executable
LD_LIBRARY_PATH
RUNPATH of the loading object
ld.so.cache
default dirs
और फिर सुझाव देते हैं:
जब आप बाइनरी जहाज, या तो RPATH का उपयोग करें और नहीं RUNPATH या LD_LIBRARY_PATH सुनिश्चित दौड़ने से पहले सेट है। क्योंकि
RUNPATH
तरह-के रद्दRPATH
तो अप्रत्यक्ष गतिशील लोड हो रहा है अपेक्षा के अनुरूप काम नहीं करता है
तो, RUNPATH
साथ RPATH
का उपयोग कर बुरा है? लेकिन फिर RPATH
को RUNPATH
के पक्ष में क्यों हटा दिया गया?
क्या कोई स्थिति की व्याख्या कर सकता है?
समस्या यह है कि RPATH पर RUNPATH की अनुशंसा की जाती है, और RPATH को बहिष्कृत किया जाता है, लेकिन वर्तमान में RUNPATH सभी सिस्टम द्वारा समर्थित नहीं है। तो मैं आवेदन ** काम करने के लिए ** आज ** क्या करता हूं? क्यूटी लेख के रूप में, प्लगइन्स का उपयोग करते समय यह RUNPATH से अधिक RPATH का उपयोग करने के लिए उपयोगी है। इसलिए पूरी स्थिति यहां बहुत भ्रमित है – zaharpopov
@ ज़हरपोपोव, सबसे अच्छा तरीका जो मैं अनुशंसा करता हूं और खुद का पालन करता हूं वह उन अनुप्रयोगों का उत्पादन करना है जो लक्षित प्लेटफ़ॉर्म में अच्छी तरह से एकीकृत हैं, जिसमें अन्य चीजों के साथ, प्लेटफ़ॉर्म के प्रतिस्पर्धी संस्करणों को वितरित नहीं करना शामिल है। साझा पुस्तकालय *। मुझे लगता है कि यह समस्या की जड़ है और हैक और 'DT_RPATH' के आसपास slashes और दोस्तों को एक हल निर्देशित प्रयास है कि इसे हल करने की बजाय समस्या को हल करने का प्रयास कर रहे हैं। – chill
यह आसान नहीं है। क्यूटी समस्या के साथ ऐप सिस्टम पर मौजूद क्यूटी libs के नए संस्करण चाहता है। कुछ प्रणालियों ने क्यूटी एसओएस को पुराना कर दिया है, तो आप तब क्या करेंगे? मुझे लगता है कि अगर आपको एक विशिष्ट संस्करण – zaharpopov