2015-10-12 11 views
6

मैं अपने सी ++ 11 कोड बनाने के लिए क्लैंग (3.3) के साथ जीसीसी को प्रतिस्थापित करना चाहता हूं, इसलिए मुझे क्लैंग के विकल्प -stdlib=libstdc++ (इसे एसटीएल हेडर देखने के लिए) का उपयोग करना चाहिए। विकल्प काम करता है: बजना string तरह हेडर देखते हैं, लेकिन (type_traits) क्योंकि 11 हेडर बजना खोजें 4.2 निर्देशिका में C++ नहीं मिल सकता है:जीसीसी के शीर्षकों के लिए क्लैंग खोज कैसे करें?

clang++ -stdlib=libstdc++ -E -x c++ - -v < /dev/null 
... 
/usr/include/c++/4.2 
/usr/include/c++/4.2/backward 
/usr/include/clang/3.3 
/usr/include 
... 

कैसे यह जीसीसी के हेडर की कभी नहीं संस्करणों को देखो बनाने के लिए?

जहां तक ​​मैं समझता हूं, केवल libC++ (libstdC++ नहीं) C++ 11 के लिए क्लैंग द्वारा समर्थित है, इसलिए यह libC++ को स्थापित करने का एकमात्र तरीका है?

+0

यदि आप क्लैंग के साथ जीसीसी को प्रतिस्थापित करना चाहते हैं, तो आप जीसीसी के मानक पुस्तकालय कार्यान्वयन का उपयोग क्यों करना चाहते हैं? आप वास्तव में क्या करने की कोशिश कर रहे हैं? –

+1

क्या आप संपादन के बिना उस कमांड का पूरा आउटपुट पोस्ट कर सकते हैं? –

+0

एकाधिक-शब्द-उपनाम वाले लोगों का उत्तर कैसे दें? :) – pavelkolodin

उत्तर

1

या तो जीसीसी 4.2 को अनइंस्टॉल करें या --gcc-toolchain=<value> विकल्प का उपयोग करें।

--gcc-toolchain=<value> Use the gcc toolchain at the given directory 

उदाहरण के लिए: clang++ --gcc-toolchain=/usr/local/... -stdlib=libstdc++ ...

जहां तक ​​मैं समझता हूँ, केवल libC++ (libstdc नहीं ++) के लिए सी ++ 11 बजना तो एक ही तरीका है यह इतना libC++ स्थापित द्वारा समर्थित है?

दोनों सी ++ मानक पुस्तकालय समर्थित हैं।

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