c++ - english - खरगोश प्रतिनिधि प्रजातियां



खरगोश के साथ जोड़ने तो (1)

हाँ, -L विकल्प खोज पथ जोड़ता है, लेकिन लिंकर .so (या .a ) प्रत्यय को जोड़ता है (जैसे कि यह lib उपसर्ग जोड़ता है)। तो आपको केवल -lchaiscript_stdlib-5.3.1 और लिंकर इसे मिलेगा।

आप पथ के जोड़ को छोड़ सकते हैं, और सीधे फ़ाइल से लिंक कर सकते हैं:

clang++ Main.cpp -o foo libchaiscript_stdlib-5.3.1.so

नोट करें कि रनटाइम लिंकर (जो कि आपके प्रोग्राम को चलाने पर साझा लाइब्रेरी को वास्तव में लोड करता है) लाइब्रेरी को ढूंढने में सक्षम नहीं हो सकता है यदि रनटाइम लिंकर्स पथ में नहीं है आप जनरेटेड प्रोग्राम में साझा किए गए लायब्रेरी पथ के पथ को जोड़ने के लिए (समय संकलन) लिंकर को बता सकते हैं:

clang++ Main.cpp -o foo libchaiscript_stdlib-5.3.1.so -Wl,-rpath,/absolute/path

The -Wl विकल्प लिंकर को एक विकल्प पास करने के लिए कंपाइलर फ्रंट एंड को बताता है, और लिंकर विकल्प -rpath रनटाइम-लिंकर खोज पथ के लिए एक पथ जोड़ता है।

मैं हो रही रखता हूं

ld: library not found for -lchaiscript_stdlib-5.3.1.so
clang: error: linker command failed with exit code 1 (use -v to see invocation)

जब मैं a का उपयोग कर रहा हूँ तो I

clang++ Main.cpp -o foo -L./ -lchaiscript_stdlib-5.3.1.so

मैं क्या गलत कर रहा हूं?

libchaiscript_stdlib-5.3.1.मैं एक ही निर्देशिका में Main.cpp के रूप में है, मैंने सोचा था कि -एल / ​​/। पुस्तकालय seach पथ को जोड़ना होगा।





chaiscript