में नहीं देखता है, मैं क्लैंग (3.0) के साथ सी ++, सेमेक-आधारित प्रोजेक्ट बनाने और लिंक करने का प्रयास कर रहा हूं। यह प्रोजेक्ट कई पुस्तकालयों से जुड़ा है जो एक कस्टम निर्देशिका/my/dir/में स्थापित हैं। यह निर्देशिका LD_LIBRARY_PATH और LIBRARY_PATH पर्यावरण चर में शामिल है। परियोजना जी ++ के साथ ठीक बनाता है और लिंक करता है।क्लैंग लिंकर LD_LIBRARY_PATH
लिंक उत्पन्न और cmake द्वारा निष्पादित आदेश के बाद दिखाई देता है:
/usr/bin/clang++ -O3 stuff.cpp.o -o stuff -rdynamic -lmylib
ld तो निम्न संदेश के साथ शिकायत:
/usr/bin/ld: cannot find -lmylib
लिंक आदेश ऊपर जब भी मैं मैन्युअल -L/my/dir/
जोड़ने ठीक चलाता है । -L
ध्वज निर्दिष्ट किए बिना लिंक करने का कोई तरीका है?
['LD_LIBRARY_PATH'] (http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html) स्टार्टअप पर लाइब्रेरी लोड करने के लिए है, लिंक निर्भरताओं को हल करने के लिए नहीं। शायद आप 'एलडीएफएलजीएस' का उपयोग करना चाहते हैं? –
दिलचस्प। मैं __g ++ __ और __clang ++ __ का उपयोग सीएमके के साथ एक दूसरे के साथ कर सकता हूं लेकिन कभी भी ऐसी ही समस्या नहीं थी। लाइब्रेरी पथ को परिभाषित करने के लिए मैं बस 'link_directories() 'मैक्रो का उपयोग करता हूं। – Hindol