मैं सफलतापूर्वक libawesomium-1.6.5.so
के खिलाफ लिंक कर सकते हैं:, साझा लाइब्रेरी से लिंक हो रहा कस्टम LD_LIBRARY_PATH बिना कार्यक्रम बुला
-L-L.
-L-lawesomium-1.6.5
-L-ldl
libawesomium-1.6.5.so
मेरी निष्पादन उसी निर्देशिका में है, अब अगर मैं अपने कार्यक्रम को फोन करने की कोशिश (मैं फोन करता हूँ यह अब के लिए ठेला), यह मौजूद है के साथ:
./prog: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
तो मैं एक सिमलिंक libawesomium-1.6.5.so.0
libawesomium-1.6.5.so
की ओर इशारा करते, prog
फिर से चलाने के लिए मुझे एक ही त्रुटि देता है बनाने के लिए, एक कस्टम 012 के साथ बुलाकाम करता है, लेकिन मैं prog
वितरित करना चाहता हूं और मैं चाहता हूं कि उपयोगकर्ता रूट-राइट्स के साथ prog
का उपयोग करने में सक्षम हो (/usr/lib
आदि में awesomium इंस्टॉल करें) और LD_LIBRARY_PATH
सेट करने की आवश्यकता के बिना। एक विकल्प एक शेल स्क्रिप्ट होगा जो LD_LIBRARY_PATH
सेट करता है, लेकिन मैं एक अलग तरीका पसंद करूंगा (मैंने LD_LIBRARY_PATH
सेटिंग भी खराब विचार किया है)।
इसके अलावा, अगर libawesomium-1.6.5.so.0
पर सिम्लिंक बनाने की आवश्यकता नहीं है तो यह बहुत अच्छा होगा।
संपादित करें:
पासिंग लिंकर कार्यों के लिए -rpath=.
! लेकिन दुर्भाग्य से awesomium इसके साथ सौदा नहीं कर सकते हैं:
/.../awesomium_test/AwesomiumProcess: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
-rpath का उपयोग करना और LD_LIBRARY_PATH की स्थापना prog अंदर काम करता है
वाह यह काम करता है, धन्यवाद! अच्छी तरह से नहीं, मेरा संपादन देखें। – dav1d
मैंने इसे समझ लिया! मैं अपने कार्यक्रम के अंदर awesomium लोड करने से पहले 'LD_LIBRARY_PATH' सेट कर सकते हैं। – dav1d
आपको '-Wl, -rpath =' $ ORIGIN ''-Wl, -rpath = .' और LI_LIBRARY_PATH के बजाय बेकार होना चाहिए। – Julien