2012-04-06 17 views
8

के साथ सी ++ 11 हेडर सहित मैंने स्रोत से क्लैंग और एलएलएम स्थापित किया है, और नए मानक की सुविधाओं का उपयोग करके कुछ सी ++ कोड संकलित करने की कोशिश कर रहा हूं।क्लैंग/एलएलवीएम

मुझे पता चला है कि उदाहरण के लिए श्रेणियों के लिए उपयोग उदा। for (i : vector) ठीक काम करता है, मुझे परेशानी हो रही है (हेडर फ़ाइल नहीं मिल सकती) जब मुझे हेडर आयात करने की आवश्यकता होती है उदा। <unordered_set> या <tuple>

क्या मुझे इन शीर्षकों का उपयोग करने के लिए नए libC++ का उपयोग करने की आवश्यकता है, या क्या मुझे बस एक साधारण निर्माण परिवर्तन करना है? फिलहाल मैंने अपनी होम निर्देशिका में एक फ़ोल्डर में क्लैंग और llvm बनाया है, और वहां से clang ++ कॉल कर रहा हूँ।

उत्तर

4

मानक पुस्तकालय अपने संकलक का वितरण, जब आप इसे अपने आप को निर्माण कर रहे हैं के साथ आता है, फिर भी आप मानक पुस्तकालय में ही निर्माण करने के लिए की जरूरत है। इसके कुछ घटक केवल हेडर हो सकते हैं, लेकिन उनमें से सभी नहीं हैं।

तो इसे कम से कम लाइब्रेरी डाउनलोड करने की आवश्यकता है, अगर इसे नहीं बनाया गया है। क्लैंग जीसीसी के libstdC++ का उपयोग कर सकते हैं, लेकिन उनके पास libC++ प्रोजेक्ट भी है।

11

http://clang.llvm.org/get_started.html देखें।

यदि आप क्लैंग सी ++ समर्थन पर काम करना चाहते हैं, तो आपको यह बता सकते हैं कि अपने सी ++ मानक लाइब्रेरी हेडर कैसे ढूंढें। बजना ++ हेडर libstdc आपके सिस्टम नहीं मिल रहा है, तो इन निर्देशों का पालन करें:

  • जीसीसी -v -x C++/dev/बातिल -fsyntax-केवल पथ प्राप्त करने के लिए। टिप्पणी के लिए

  • देखो "FIXME: अस्थायी हैक: हार्ड-कोडेड पथ" बजना/lib/दृश्यपटल/InitHeaderSearch.cpp में और नीचे लाइनों को बदलने कि पथ शामिल करने के।

+0

ठीक है लेकिन यह केवल नए मानक से शीर्षकों के साथ एक समस्या प्रतीत होता है। – zenna

+0

आह हा, जो हो सकता है क्योंकि मेरा जी ++ 4.6 गैर मानक स्थान पर है – zenna

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

  • कोई संबंधित समस्या नहीं^_^