कैसे gcc-7 या clang 4.0 स्थापित करें?


27

मैं C ++ 17 सुविधाओं की कोशिश करना चाहता हूं और मैं मानक अनुरूप संकलक (अधिमानतः जीसीसी) स्थापित करना चाहता हूं। मैं लिनक्स और उबंटू के लिए पूरी तरह से नया हूं और मुझे बस बहुत कुछ समझ नहीं आ रहा है।

मैंने https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test का अनुसरण करने की कोशिश की, लेकिन बिना किसी भाग्य के। पहले मैं भागा:

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

जैसा कि मैंने समझा कि यह कमांड कुछ चाबियाँ स्थापित करता है। आगे मैंने कोशिश की:

sudo add-apt-repository ppa:ubuntu-toolchain-r/gcc-7

वह लौटा:

Error: 'ppa:ubuntu-toolchain-r/gcc-7' invalid

आगे मैंने क्लैंग डेवलपमेंट ब्रांच स्थापित करने की कोशिश की:

apt-get install clang-4.0 lldb-4.0

और यह मुझे देता है

E: Unable to locate package clang-4.0
E: Couldn't find any package by glob 'clang-4.0'
E: Couldn't find any package by regex 'clang-4.0'
E: Unable to locate package lldb-4.0
E: Couldn't find any package by glob 'lldb-4.0'
E: Couldn't find any package by regex 'lldb-4.0'

यह सब क्या मतलब है? क्या गलत है?


1
add-apt-repositoryआदेश आप भाग गया तो यह कोई आश्चर्य नहीं यह काम नहीं करता है, पीपीए के पृष्ठ पर दिए गए एक के समान नहीं है। सही चलाने की कोशिश करें।
fkraiem 21

मैंने testपहले पैकेज स्थापित किया । सवाल अपडेट किया।
nikitablack

add-apt-repositoryजैसा कि इसके नाम का तात्पर्य एक रिपॉजिटरी जोड़ता है, यह एक पैकेज स्थापित नहीं करता है। अब आप कर सकते हैं apt install gcc-7
21

परीक्षण PPA में एक gcc-7 पैकेज है। क्या आपने उसे स्थापित करने की कोशिश नहीं की है?
dobey

2
@nikitablack लगता है कि gcc 7 16.04 के लिए उपलब्ध नहीं है: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/… लेकिन आपके पास क्लैंग के
andrew.46

जवाबों:


23

आप इस पैकेज से पहले ही gcc-7 और g ++ - 7 स्थापित कर सकते हैं ।

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

9
हां, यह काम करता है। आज के लिए, यह add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
ppa

clang-4.0.0 स्थापित हो जाता है, लेकिन clang -v शो 3.8.0 है।
लाल

दोनों 4.0.0 और 3.8.0 स्थापित हैं लेकिन डिफ़ॉल्ट रूप से सिस्टम 3.8 पढ़ता है। Emscripten का उपयोग करते समय जो गड़बड़ करता है जो इसे पढ़ता है लेकिन इसके लिए 4.0.0 की आवश्यकता होती है।
लाल

यह रेपो आवासीय कनेक्शन से चल रहा है या कुछ और?
जोनाथन हेंसन

23

Ubuntu 16.04 और नीचे

एक आधिकारिक उबंटू जीसीसी परीक्षण पीपीए है जिसे प्राथमिकता दी जानी चाहिए:

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

मई 2017 में जीसीसी 7 जारी किया गया था , इसलिए 17.04 मुख्य रिलीज के लिए बहुत देर हो चुकी थी।

वर्तमान में PPA के पास नए रिलीज़ के लिए GCC नहीं है। 16.10, केवल LTS 12.04, 14.04 और 16.04, जैसा कि देखा जा सकता है: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu-test | स्नैपशॉट । मुझे लगता है कि यह पहले 17.04 था लेकिन इसे हटा दिया गया था? इसे भी देखें: /unix/371737/install-gcc-7-on-nuntu

उबंटू 16.04, अक्टूबर 2018 को परीक्षण किया गया।

Ubuntu 17.10 और ऊपर

डिफ़ॉल्ट रूप से GCC 7.2 और क्लैंग 4 है! https://packages.ubuntu.com/artful/gcc | https://packages.ubuntu.com/artful/clang

$ gcc --version
gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
$ clang --version  
clang version 4.0.1-6 (tags/RELEASE_401/final)

16.04 पर जीसीसी 8

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

2018-11 तक 8.1.0 देता है।

उबंटू में डिफ़ॉल्ट 18.04:

Crosstool-एनजी

यदि आप इस बारे में वास्तव में गंभीर हैं, तो अपने स्वयं के GCC को Crosstool-NG के साथ संकलित करें और उपयोग करें: /programming/847179/multiple-glibc-lbooks-on-a-single-host/52454603# 52454603

यह आपको उन आवश्यक संप्रदायों को डाउनलोड करने के बिना उबंटू संस्करणों की एक विस्तृत विविधता पर जीसीसी संस्करणों की एक विस्तृत विविधता का उपयोग करने की अनुमति देगा, जिन पर आपको जरूरी भरोसा नहीं है।


1

ओपी "कैसे स्थापित करें ..." के लिए पूछता है। वैकल्पिक रूप से, क्लैंग 4.0 को कैसे संकलित किया जाए।

आप Microsoft ChakraCore के GitHub रिपॉजिटरी से स्क्रिप्ट का उपयोग करके स्रोत कोड से संकलन कर सकते हैं ।

wget https://raw.githubusercontent.com/Microsoft/ChakraCore/master/tools/compile_clang.sh

LLVM_VERSION="3.9.1"लाइन 7 से अपडेट करेंLLVM_VERSION="4.0.0"

sudo ./compile_clang.sh

यह एलएलवीएम गोल्ड सपोर्ट के साथ क्लैंग 4.0 (और पूरे कंपाइलर टूलचैन) को डाउनलोड और संकलित करेगा।


3
"एलएलवीएम सोना" क्या है?
ईनपोक्लुम - मोनिका

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