मैक ओएस एक्स पर, DYLD प्रारूप में द्विआधारी निष्पादनयोग्य "लोडर कमांड" कि पुस्तकालय लोड हो रहा है प्रणाली कैसे फ़ाइल की सामग्री को संभालने के लिए हिदायत होते हैं। विशेष रूप से, लोडर कमांड सिस्टम को निर्देश देता है जहां निर्भर पुस्तकालयों की खोज की जानी चाहिए, आदिमैं एक DYLD लोडर कमांड कैसे स्थापित कर सकता हूं जिसे स्पष्ट रूप से एलडी द्वारा समर्थित नहीं किया जाता है?
आप "otool -l/path/to/your" चलाकर अपने सिस्टम पर किसी भी बाइनरी के लिए लोडर कमांड की पूरी सूची देख सकते हैं/एप्लिकेशन "।
सामान्यतया इन लोडर आदेशों एक परियोजना की संकलन के लिंक के चरण के दौरान "ld" उपकरण द्वारा निर्धारित कर रहे हैं।
मेरा प्रश्न है, मैं क्या लोडर प्रचारित प्रकार है कि समर्थित नहीं हैं (जाहिरा तौर पर) ld द्वारा आदेशों को जोड़ने के लिए क्या करने की जरूरत है?
विशेष रूप से, मैं एलसी_DYLD_ENVIRONMENT लोडर कमांड का लाभ लेना चाहता हूं, जिसका प्रयोग बाइनरी के लोडर कमांड टेबल में एक स्ट्रिंग निर्दिष्ट करने के लिए किया जा सकता है जिसे लोड किया जाना चाहिए और पर्यावरण परिवर्तनीय सेटिंग्स के संदर्भ में मूल्यांकन किया जाना चाहिए निष्पादन योग्य।
मैं ld के लिए किसी भी तर्क है कि इस सुविधा होगी नहीं दिख रहा। "-sectcreate" की तरह कुछ लेकिन लोडर कमांड की सामग्री को विशेष रूप से जोड़ने के लिए, जो मैं बाद में हूं।
मैं जानता हूँ कि यह संभव है क्योंकि मैक ओएस एक्स पर कम से कम एक मानक अनुप्रयोग का उपयोग करता है: सफारी। लेकिन मुझे नहीं पता कि वे बाइनरी की किसी तरह की पोस्ट-लिंक मालिश द्वारा इसे प्राप्त करते हैं, अगर वे एलडी के कस्टम संस्करण का उपयोग कर रहे हैं जो कस्टम लोडर कमांड को बनाने और चेन करने के बारे में जानता है, या यदि वे शोषण कर रहे हैं ld कमांड की एक सामान्य-purpopse सुविधा जिसे मैं समझने में सक्षम नहीं हूं।
बढ़िया! धन्यवाद। मुझे ट्विटर के माध्यम से कुछ फीडबैक भी मिला, जिसने ध्यान दिया कि एलसी_DYLD_ENVIRONMENT वास्तव में आपको मनमाने ढंग से पर्यावरण चर परिभाषित नहीं करता है, केवल डीवाईएलडी लोडिंग को प्रभावित करने वाले लोगों को ही परिभाषित करता है। तो उस सीमा तक नीचे की ओर से एलएसई पर्यावरण संरक्षण मेरी तत्काल जरूरतों के लिए अधिक अनुकूल है, लेकिन आपका उत्तर प्रश्न के आधार के लिए सबसे उपयुक्त संदर्भ है। – danielpunkass