2012-02-07 6 views
5

एलएलवीएम 2 टूल्स llvm-link और llvm-ld प्रदान करता है। मैं जानना चाहता हूं:llvm लिंकर का उपयोग कैसे करें?

  • सभी में एक फ़ाइल कैसे विलय करें?

  • कैसे एक soname gcc -Wl, -soname, libsomething.so.1 के साथ सेट करें?

मैं कैसे है कि करते हैं कमांड लाइन से मैंने पाया कि कैसे सी में करने के लिए करते हैं ++ मेरे लिए C++ लेकिन अगर शो ऐसा करने के लिए चाहते हैं।

धन्यवाद

+0

आप वास्तव में क्या करने की कोशिश कर रहे हैं? लिंक ऑब्जेक्ट फ़ाइलें या एलएलवीएम बिटकोड फाइलें? एक एसएसओ बनाएँ? –

उत्तर

9
  • llvm-link एक और LLVM आईआर फ़ाइल में (~ विलय) LLVM आईआर फ़ाइलों को जोड़ने के लिए एक उपकरण है।
  • llvm-ldld पर संगत होने का प्रयास करता है। ध्यान दें कि एलएलवीएम में वर्तमान में कोई वास्तविक लिंकिंग क्षमता नहीं है, इसलिए वास्तविक अंतिम चरण करने के लिए llvm-ldgcc पर कॉल करें।

ध्यान दें कि अगर आप सिर्फ जीसीसी की कार्यक्षमता करना चाहते हैं, बजना ड्राइवर का उपयोग करें:

clang -c file.c -fpic 
clang -shared file.o -o file.so 

तुम भी clang को -Wl झंडे पारित कर सकते हैं के रूप में आप gcc के लिए क्या चाहते हैं:

clang -shared file.o -Wl,-soname,libfile.so.8 -o file.so 
+2

इसमें जोड़ने के लिए, कृपया सीधे llvm-ld का उपयोग न करें। बिल्ली, कृपया किसी भी लिंकर का सीधे उपयोग न करें जबतक कि आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं और आपके पास इसे संभालने के लिए एक कंपाइलर ड्राइवर नहीं है। – echristo

+3

मैक पर बस एक संकेत, '-sharedlib' को बदलने के लिए '-dynamiclib' का उपयोग करें-- wl, -soname, libxxxxx 'भाग – clsung

+0

@clsung धन्यवाद! – Cfr

संबंधित मुद्दे