Gcc-7 veya clang 4.0 nasıl kurulur?


27

C ++ 17 özelliklerini denemek ve standart uyumlu derleyici (tercihen GCC) yüklemek istiyorum. Linux ve Ubuntu'da tamamen yeniyim ve çok fazla anlamıyorum.

Https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test ancak şanssız takip etmeye çalıştım . İlk ben koştum:

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

Anladığım kadarıyla bu komut bazı anahtarlar yükler. Sonra denedim:

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

Bu döndü:

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

Sonra clang geliştirme şubesini kurmaya çalıştım:

apt-get install clang-4.0 lldb-4.0

Ve bana verir

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'

Bütün bunlar ne anlama geliyor? Sorun nedir?


1
Koştuğunuz add-apt-repositorykomut, PPA'nın sayfasında verilen ile aynı değil, bu yüzden işe yaramaması şaşırtıcı değil. Doğru olanı çalıştırmayı deneyin.
fkraiem

testÖnce paketi kurdum . Soru güncellendi.
nikitablack

add-apt-repositoryAdından da anlaşılacağı gibi bir havuz ekler, bir paket yüklemez. Şimdi yapabilirsin apt install gcc-7.
fkraiem

PPA testinde bir gcc-7 paketi var. Bunu yüklemeye çalışmadın mı?
saat

2
@nikitablack gcc 7 16.04 için mevcut değil gibi görünüyor: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/… Ama klan konusunda daha iyi bir şansınız olabilir, bu sayfanın tabanına bakın: apt.llvm .org
andrew.46

Yanıtlar:


23

Gcc-7 ve g ++ - 7'yi zaten bu paketten yükleyebilirsiniz .

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

9
Evet, bu işe yarıyor. Bugün gelince, bu ppa da işe yarıyoradd-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
nikitablack

clang-4.0.0 kuruluyor ancak clang -v 3.8.0 gösteriyor.
KIRMIZI

Her ikisi de 4.0.0 ve 3.8.0 yüklü ancak varsayılan olarak sistem 3.8 okur. Bunu okuyan Emscripten kullanırken hangisi dağılır ki bu 4.0.0 gerektirir.
KIRMIZI

Bu repo konut bağlantısı falan mı çalışıyor?
Jonathan Henson,

23

Ubuntu 16.04 ve altı

Tercih edilmesi gereken resmi bir Ubuntu GCC testi PPA'sı var:

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

GCC 7 Mayıs 2017’de serbest bırakıldı, 17.04 ana sürüm için çok geç.

PPA şu anda daha yeni sürümler için GCC'ye sahip değildir; örneğin, 16.10, yalnızca LTS 12.04, 14.04 ve 16.04, görüldüğü gibi: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test | anlık görüntü . Daha önce 17.04 olduğunu düşünüyorum ama kaldırıldı. Ayrıca bakınız: https://unix.stackexchange.com/questions/371737/install-gcc-7-on-ubuntu

Ubuntu 16.04, Ekim 2018'de test edilmiştir.

Ubuntu 17.10 ve üzeri

Varsayılan olarak GCC 7.2 ve clang 4 var! 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 tarihinde GCC 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 itibariyle 8.1.0 verir.

Ubuntu 18.04’de varsayılan:

Crosstool-NG

Bu konuda gerçekten ciddiysen, kendi GCC'nizi Crosstool-NG ile derleyin ve kullanın: https://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host/52454603# 52454603

Bu, mutlaka güvenmediğiniz PPA'lardan blob indirmeden çok çeşitli Ubuntu sürümlerinde GCC sürümlerini kullanmanızı sağlar.


1

OP "nasıl kurulur ..." diye sorar. Alternatif olarak, Clang 4.0 nasıl derlenir.

Microsoft ChakraCore'un GitHub deposundaki komut dosyasını kullanarak kaynak koddan derleyebilirsiniz .

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

LLVM_VERSION="3.9.1"Satır 7’deki güncellemeLLVM_VERSION="4.0.0"

sudo ./compile_clang.sh

LLVM Gold desteği ile Clang 4.0'ı (ve tüm derleyici araç zincirini) indirip derleyecektir.


3
"LLVM altın" nedir?
einpoklum - Monica

@einpoklum Sanırım Binutils'ten Altın Linker için LLVM altın eklentisi . Bağlantı zamanı optimizasyonu için kullanılır.
Ruslan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.