पर dlopen() का उपयोग करके मुझे किसी अन्य प्रोग्राम से फ़ंक्शन कॉल करने की आवश्यकता है। यदि दूसरा प्रोग्राम लाइब्रेरी था, तो मैं फ़ंक्शन में हैंडल प्राप्त करने के लिए बस डलोपेन और डीएलएसआईएम का उपयोग कर सकता था। दुर्भाग्यवश, दूसरा प्रोग्राम एक यूनिक्स निष्पादन योग्य है, और इसे पुस्तकालय के रूप में बनाना एक विकल्प नहीं है। निष्पादन पर dlopen() की कोशिश कर रहा यह त्रुटि संदेश देता है:निष्पादन योग्य
dlopen([...]/testprogram, 1): no suitable image found. Did find: [...]/testprogram: can't map
इस रूप में dlopen पुस्तकालयों, नहीं निष्पादनयोग्य के साथ प्रयोग के लिए है, आश्चर्य की बात नहीं है। निष्पादन योग्य के साथ काम करने के लिए dlopen और dlsym पाने का कोई तरीका है? यदि नहीं, तो क्या वही चीज़ प्राप्त करने का एक वैकल्पिक तरीका है?
जैसा कि यहां चर्चा की गई है: http://stackoverflow.com/questions/6617099/call-function-in-unrelated-executable-linux/6619977#6619977, यह उत्तर पीआईई निष्पादन योग्य के लिए गलत है, जो वास्तव में एक विशेष रूप है साझा पुस्तकालय (और यहां तक कि ET_DYN e_type भी है)। –