मैं Ubuntu पर नवीनतम GCC का उपयोग कैसे करूं?


132

मैं अपने कार्यक्रम को नवीनतम संस्करण के साथ संकलित करना चाहता हूं gcc

Ubuntu 14.04 4.8.2 gcc के साथ आता है, हालाँकि इसमें 4.9.0 उपलब्ध है, इसके अलावा, मैं देख रहा हूँ कि यह एक पैकेज के रूप में उपलब्ध है gcc-4.9:। मैंने इसे स्थापित करने की कोशिश की

sudo apt-get install gcc-4.9

लेकिन यह कहता है

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcc-4.9-base' for regex 'gcc-4.9'
gcc-4.9-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

ऐसा लगता है कि यह पहले से ही स्थापित है, बस डिफ़ॉल्ट के रूप में नहीं? मैं अपने कार्यक्रम के निर्माण के लिए इसका उपयोग कैसे करूँ?


यदि आप स्थापित करना चाहते हैं gcc-4.8, तो आपको उपयोग करने की आवश्यकता है sudo apt-get install gcc-4.8gcc-4.9, gcc-4.8, gcc-4.7, gcc-4.6सभी में हैं उबंटू मुख्य रेपो

1
@ डुमिन्दु लेकिन मैं gcc-4.9विशेष रूप से कैसे उपयोग करूं ?
निकोलई लेसचोव

दूसरों को अनइंस्टॉल करें और 4.9 स्थापित करें।

2
@ डुमिन्दु रुको, क्या तुमने मुझे सिर्फ वही करने को कहा जो मैंने अभी किया था? यह काम नहीं कर रहा है।
निकोलाई लेसचोव

रूट यूजर पर स्विच करें: sudo su -गोटो /usr/binतब रन करें ls -l gcc*और अपना आउटपुट पोस्ट करें। तो मैं आपका जवाब पोस्ट करूँगा।
α atsнιη

जवाबों:


196

Gcc-4.9 को सही ढंग से स्थापित करने और इसे अपने डिफ़ॉल्ट gcc संस्करण के उपयोग के रूप में सेट करने का सबसे अच्छा तरीका है:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

--slave, के साथ g++, कारण होगा g++के साथ स्विच होने के लिए gccएक ही संस्करण के लिए,। लेकिन, इस बिंदु पर gcc-4.9 आपके द्वारा कॉन्फ़िगर किया गया एकमात्र संस्करण होगा update-alternatives, इसलिए 4.8 को इसमें जोड़ें update-alternatives, इसलिए वास्तव में इसका एक विकल्प है:

sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

फिर आप जांच सकते हैं कि कौन सा सेट है, और आगे और पीछे का उपयोग करके बदल दें:

sudo update-alternatives --config gcc

नोट: आप पीपीए रिपॉजिटरी को स्थापित करना छोड़ सकते हैं और सिर्फ उपयोग कर सकते हैं /usr/bin/gcc-4.9-baseलेकिन मैं ताजा अपडेट किए गए टूलचिन का उपयोग करना पसंद करता हूं।


GCC 5.X या 6 के लिए, संकुल (और तदनुसार, कमांड्स) को बस कहा जाता है gcc-5, gcc-6आदि। यह GCC की संस्करण योजना में परिवर्तन के कारण है , जहाँ 5.1 पहले GCC 5 रिलीज़ है, और भविष्य में 5.X रिलीज़ बग फिक्स के लिए हैं


@ Muru के संपादन के लिए धन्यवाद ... जैसा कि मैंने नीचे कहा था, मैं लगभग 3 दिनों से बहुत थका हुआ था और अद्यतन-विकल्प के लिए सुडोल की आवश्यकता होती है और मुझे लगता है कि मैं दास से पहले (-) भूल गया था। :) इसलिए तुम्हे धन्यवाद।
सूडसुरूट

कोशिशsudo apt-get -f install
सूडसुरूट

4
यह पूरी तरह से काम करता है। इसके अलावा, जीसीसी 5 को उबंटू पर काम करने के 5लिए स्थानापन्न करें 4.9। (मेरी विकास टीम अब आपकी विधि के बाद 4.9 और 5 दोनों एक दूसरे के साथ चलती है।) धन्यवाद, और +1!
कोडमॉउस92

2
@hwat यह gcc-6अभी के लिए काम करना चाहिए ।
edwinksl

1
इससे मुझे कई बार मदद मिली है, लेकिन मैं हमेशा भूल जाता हूं - जीएनयू संकलक संग्रह में अन्य उपयोगिताओं के लिए एक ही समाधान लागू करना सुनिश्चित करें! उदाहरण के लिए GCOV एक संस्करण बेमेल के बारे में शिकायत करेगा यदि आप नहीं करते हैं, संभवतः गलत डेटा का उत्पादन कर रहे हैं।
टोबी

23

टूलकिन टेस्ट बिल्ड पीपीए का उपयोग करें :

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9

मुझे नहीं लगता कि जीसीसी 4.9 पूरी तरह से Ubuntu 14.04 के लिए अभी तक उपलब्ध है। बेस पैकेज ( gcc-4.9-base ) और GCC Go 4.9 कंपाइलर ( gccgo-4.9 ) उपलब्ध हैं, लेकिन अन्य फ्रंटएंड नहीं हैं। मुझे पता नहीं क्यों।


1
@ इसके बजाय इसे डिफ़ॉल्ट के रूप में सेट किया जा सकता है या नहीं, यह मेरी चिंता का विषय नहीं है (इससे निपटने वाले अन्य पोस्ट हैं)। हालाँकि, कि GCC 4.9 के C और C ++ के फ्रंट को 14.04 पर शुद्ध रूप से आधिकारिक रिपॉजिटरी से स्थापित किया जा सकता है, क्योंकि यह gcc-4.9-baseपैकेज गलत नहीं है और इसमें बाइनरी फ्रंट नहीं होगा।
मूरू

आप आधार पैकेज के बारे में सही हैं। जैसा कि आप मेरे उत्तर में देखेंगे, मैंने PPA का उपयोग किया। मैंने पहले टिप्पणी पोस्ट की, फिर सवाल के रूप में कहा गया सवाल का जवाब दिया ... क्योंकि बस पीपीए को जोड़ने और 4.9 को स्थापित करने से यह सक्षम नहीं होता है जिसे "जीसीसी 4.9 का उपयोग करने" की आवश्यकता होती है। प्रश्न का उत्तर देने के बाद मुझे टिप्पणी को हटा देना चाहिए था। मैं क्षमाप्रार्थी हूं। मेरा जवाब है कि किस पर ध्यान केंद्रित किया जाना चाहिए। मैं निष्कर्ष पर कूद गया ... और उपवास के लिए टिप्पणी की। मैं 14.04 का उपयोग करने के साथ वास्तव में बहुत नया हूं क्योंकि मुझे समर्पित सर्वर मिला है। मुझे यकीन है कि मैंने वोट नहीं दिया और अगर मैंने किया तो मैं इसे ठीक कर दूंगा।
सूडसुरूट

@SudoSuroot ठीक है। फिर भी, जब तक कि ओपी बुला के साथ एक समस्या है gcc-4.9या g++-4.9बजाय gccया g++, मैं विकल्प अपडेट नहीं हो लागू हो जाएगा।
मुरु

मैं पूरी तरह समझ गया। हालांकि, मैं एंड्रॉइड सिस्टम का निर्माण करता हूं, जो बहुत सारे $ (जो कि जीसीसी) और $ (जो जी ++) आदि का उपयोग करता है ... इसलिए मुझे हमेशा उस संस्करण में चूक को सेट करना होगा जिसे मैं उपयोग करना चाहता हूं। मेरे कुछ कर्नेल कोड होस्ट gcc-4.8 के साथ संकलित नहीं करेंगे, इसलिए मुझे अपडेट करना था। मैंने सिर्फ वही दोहराया जो मेरे लिए काम किया। हालांकि मुझे याद दिलाने के लिए धन्यवाद ... जैसे मैंने अपने संपादन में कहा था, पिछली टिप्पणी से, मैं समय से पहले मतदान कर सकता हूं, अगर ऐसा है तो मैं इसे ठीक करूंगा। जब मैंने इन्हें पोस्ट किया था, तो मुझे अपने कर्नेल स्रोत पर काम करते हुए 2 या 3 दिन हो गए थे। हर किसी के पास अपने तरीके हैं ... मैंने अपने सवालों के जवाब देने के लिए अपने सवालों के जवाब को और अधिक अच्छी तरह से पाया
SudoSuroot

नवीनतम पैकेज gcc-7 ATM है
एल्डर गीक

5

Ubuntu 16.04 और बाद में

आप पहले से ही डिफ़ॉल्ट रिपॉजिटरी से Ubuntu 18.04 में gcc 7.0 स्थापित कर सकते हैं। Ubuntu 17.10, 18.04 और 18.10 में gcc-7 स्थापित करने के लिए टर्मिनल खोलें और टाइप करें:

sudo apt install gcc-7 

Ubuntu 18.04 में gcc-8 स्थापित करने के लिए और बाद में टर्मिनल खोलें और टाइप करें:

sudo apt install gcc-8

Ubuntu 19.04 में gcc-9 स्थापित करने के लिए और बाद में टर्मिनल खोलें और टाइप करें:

sudo apt install gcc-9

आप ppa: jonathonf / gcc-7.1 से Ubuntu 16.04 में gcc-7 स्थापित कर सकते हैं।

sudo add-apt-repository ppa:jonathonf/gcc-7.1  
sudo apt update  
sudo apt install gcc-7  

आप ppa: jonathonf / gcc-8.0 से Ubuntu 16.04 में gcc-8 स्थापित कर सकते हैं।

sudo add-apt-repository ppa:jonathonf/gcc-8.0  
sudo apt update  
sudo apt install gcc-8 

3

जीसीसी 4.9 विशेष रूप से कॉल करने के लिए, gcc-4.9कमांड प्रॉम्प्ट पर उपयोग करें ।

आपके द्वारा स्थापित सभी gcc संस्करण एक हाइफ़न और अंत में संस्करण संख्या जोड़कर व्यक्तिगत रूप से कहे जा सकते हैं gcc। आपके मामले में, gcc-4.8और gcc-4.9उपलब्ध होना चाहिए। एक टर्मिनल में, टाइप करें gcc-(हाइफ़न पर ध्यान दें) और पुश टैब दो बार यह देखने के लिए कि क्या कोई अन्य संस्करण स्थापित हैं।

ध्यान दें कि डिफ़ॉल्ट gcc अभी भी 4.8 है। ( gcc -vइसे सत्यापित करने के लिए उपयोग करें ।) यदि आपने अद्यतन-विकल्प प्रविष्टि को नहीं जोड़ा है तो दुर्भाग्य से डिफ़ॉल्ट बदलना तुच्छ नहीं है यदि आपने डिफ़ॉल्ट भंडार से gcc-4.9 स्थापित किया है। यदि आप डिफ़ॉल्ट को बदलने के तरीके में रुचि रखते हैं, तो इस प्रश्न के उत्तर देखें ।


मैं एक परियोजना के साथ makefile और संभवतः अन्य निर्माण बुनियादी ढांचे का निर्माण पर भरोसा कैसे कर सकता हूँ gcc-4.9के बजाय gcc?
निकोलाई लेसचोव

1
यह सुनिश्चित करने के लिए सबसे अच्छा तरीका है कि gcc-4.9 का उपयोग बिल्ड सिस्टम में किया जाता है, डिफ़ॉल्ट gcc को बदलना है। ऐसा करने के लिए मैंने अपने उत्तर में दिए गए लिंक का पालन करें। वैकल्पिक रूप से आप एक प्रतीकात्मक लिंक बना सकते हैं, हालांकि मैं इसके खिलाफ अंतिम उपाय को छोड़कर सलाह देता हूं क्योंकि पैकेज प्रबंधक जीसीसी अपडेट करते समय शिकायत कर सकता है। यदि आप का कहना है: sudo rm /usr/bin/gcc; sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc। Gcc-4.8 डिफ़ॉल्ट पर वापस जाने के लिए, बस gcc-4.8 के साथ gcc-4.9 को बदलें। आपको इसे g ++ और अन्य GNU संकलक के साथ भी करना पड़ सकता है।
होलोक्रोनविवर

जीसीसी 4.9 उबंटू 14.04 ( जीसीसी गो संकलक को छोड़कर ) में उपलब्ध नहीं है , इसलिए जबकि यह उत्तर उबंटू 14.10 में काम करेगा, यह अब मदद नहीं करता है। :-)
सोरेन लोर्बोर्ग

वास्तव में यह उबंटू 14.04 में उपलब्ध है, हालाँकि यह एक गलती हो सकती है: package.ubuntu.com/trusty/gcc-4.9-base । मैं अप्रैल से इसका इस्तेमाल कर रहा हूं।
होलोक्रोनवाइवर

0

ठीक है चलो यह करते हैं:

GCC   9 8 7 6 5 4
19.04 M D M M
18.10   D M M M
18.04 P M D M M
16.04 P P P P D M
  • डी : डिफ़ॉल्ट जीसीसी

    sudo apt-get update
    sudo apt-get install gcc-X g++-X
    gcc-X --version
    

    जो कुछ भी gccपैकेज उपनामों के लिए: https://packages.ubuntu.com/search?keywords=gcc

  • एम : मेन रेपो में मौजूद है

    sudo apt-get update
    sudo apt-get install gcc-X g++-X
    gcc-X --version
    

    जैसे: https://packages.ubuntu.com/search?keywords=gcc-7

  • P :, ppa:ubuntu-toolchain-r/testजो उबंटू के लोगों के स्वामित्व में है और इसलिए इस पर भरोसा नहीं किया जा सकता है कि यह वायरस नहीं है, हालांकि यह संभवतः अस्थिर है:

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install gcc-X g++-X
    gcc-X --version
    

    https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test

सभी प्रश्न:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.