2017-01-31 26 views
6

बजना स्वत: ही उच्चतम संस्करण के साथ जीसीसी-संस्करण का चयन करता है:क्लैंग में एक विशेष जीसीसी-टूलचेन का चयन कैसे करें?

$ clang++ -v main.cpp 
clang version 3.8.1-12 
(tags/RELEASE_381/final) 
Target: x86_64-pc-linux-gnu 
Thread model: posix 
InstalledDir: /usr/bin 
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9 
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.4 
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1 
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0 
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.0.1 
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9 
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.4 
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1 
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.0 
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.0.1 
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.0.1 

कैसे मैं एक अलग जीसीसी स्थापना का उपयोग करने के लिए मजबूर कर सकते बजना, 5.4.1 कहा?

मैंने --gcc-toolchain = "/ usr/lib/gcc/x86_64-linux-gnu/5.4.1" के साथ क्लैंग को कॉल करने का प्रयास किया लेकिन सफलता के बिना।

+0

शिकार (बुद्धि है एक अपरिवर्तित या स्वीकृत उत्तर दें): http://stackoverflow.com/questions/39218360/clang-gcc-toolchain-and-gcc-4-9-3-linking-issues – bolov

+2

ऐसा लगता है कि आपको स्रोत से क्लैंग बनाने की आवश्यकता है '--gcc-toolchain' – bolov

+0

@bolov बिल्डिंग क्लैंग --gcc-toolchain के साथ मुझे इच्छित संस्करण (संकलन के बाद) चुनने में सक्षम नहीं है और न ही विशेष रूप से व्यावहारिक – Gaetano

उत्तर

4

--gcc-toolchain के लिए एक मान्य पथ जाहिरा तौर पर "/ usr" है बजना के रूप में तो एक समाधान के रूप में आप एक बनाने के द्वारा एक विशेष संस्करण का उपयोग करने बजना चाल कर सकते हैं

$PREFIX/{include|lib}/gcc/$PLATFORM/$VERSION/* 

में जीसीसी देखने के लिए लग रहे हैं ओवरले-FS या फ़ोल्डर संरचना केवल एक फ़ोल्डर युक्त symlinking साथ फाइल सिस्टम

mkdir $MYTOOLCHAIN 
cd $MYTOOLCHAIN 
ln -s /usr/include include #for headerfiles 
ln -s /usr/bin bin #for tools like ld 
mkdir -p lib/gcc/x86_64-linux-gnu/ #clang will deduce what to select 
cd lib/gcc/x86_64-linux-gnu/ 
#link the toolchain we want here 
ln -s /usr/lib/gcc/x86_64-linux-gnu/$VERSION $VERSION 
#usage: clang++ --gcc-toolchain=$MYTOOLCHAIN main.cpp 

लेकिन शायद वहाँ एक बेहतर तरीका बजना का निर्देश देने वाला झंडा के माध्यम से संस्करण लेने के लिए द्वारा ...

+0

क्लैंग 3.8 और पुराने के लिए, सुनिश्चित करें कि $ संस्करण पूर्ण संस्करण संख्या है। उदाहरण के लिए, यदि /usr/lib/gcc/x86_64-linux-gnu/5.4.1/usr/lib/gcc/x86_64-linux-gnu/5 का लिंक है, तो "5.4.1" का उपयोग करें, न कि "5" । क्लैंग-3.9 + लघु टूलचेन संस्करणों से निपट सकता है। – proski

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