Làm cách nào để cài đặt gcc-7 hoặc clang 4.0?


27

Tôi muốn thử các tính năng của C ++ 17 và tôi muốn cài đặt trình biên dịch tuân thủ tiêu chuẩn (tốt nhất là GCC). Tôi hoàn toàn mới đối với Linux và Ubuntu và đơn giản là tôi không hiểu nhiều.

Tôi đã cố gắng theo dõi https://launchpad.net/~ubfox-toolchain-r/+archive/ubfox/test nhưng không gặp may. Đầu tiên tôi chạy:

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

Theo tôi hiểu lệnh này cài đặt một số phím. Tiếp theo tôi đã thử:

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

Điều đó đã trở lại:

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

Tiếp theo tôi đã cố gắng cài đặt nhánh phát triển clang:

apt-get install clang-4.0 lldb-4.0

Và nó mang lại cho tôi

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'

Tất cả điều này có nghĩa là gì? Chuyện gì vậy?


1
Các add-apt-repositorylệnh bạn chạy không giống như một đưa ra trên trang của PPA, vì vậy không có gì lạ nó không làm việc. Hãy thử chạy đúng.
fkraiem

Tôi cài đặt testgói đầu tiên. Cập nhật câu hỏi.
nikitablack

add-apt-repositorynhư tên của nó ngụ ý thêm một kho lưu trữ, nó không cài đặt một gói. Bây giờ bạn có thể làm apt install gcc-7.
fkraiem

PPA thử nghiệm có gói gcc-7 trong đó. Bạn đã không cố gắng để cài đặt đó?
dobey

2
@nikitablack Hình như gcc 7 là không có sẵn cho 16,04: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/... Nhưng bạn có thể có một cơ hội tốt hơn với kêu vang, nhìn vào cơ sở của trang này: apt.llvm .org
andrew.46

Câu trả lời:


23

Bạn đã có thể cài đặt gcc-7 và g ++ - 7 từ gói này .

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

9
Vâng, điều này hoạt động. Cho đến hôm nay, ppa này cũng hoạt độngadd-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
nikitablack

clang-4.0.0 được cài đặt nhưng clang -v hiển thị 3.8.0.
ĐỎ

Cả hai đều được cài đặt 4.0.0 và 3.8.0 nhưng theo mặc định hệ thống đọc 3.8. Cái nào gây rối trong khi sử dụng Emscripten đọc cái này nhưng yêu cầu 4.0.0.
ĐỎ

Là repo này chạy từ một kết nối dân cư hoặc một cái gì đó?
Jonathan Henson

23

Ubuntu 16.04 trở xuống

Có một PPA thử nghiệm Ubuntu GCC chính thức nên được ưu tiên:

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 đã được phát hành vào tháng 5 năm 2017 , vì vậy quá muộn cho bản phát hành chính 17.04.

PPA hiện không có GCC cho các bản phát hành mới hơn, ví dụ 16.10, chỉ LTS 12.04, 14.04 và 16.04, như có thể thấy tại: https://launchpad.net/~ubfox-toolchain-r/+archive/ub Ubuntu / test | ảnh chụp nhanh . Tôi nghĩ rằng nó đã có 17.04 trước đó nhưng nó đã được gỡ bỏ? Xem thêm: https://unix.stackexchange.com/questions/371737/install-gcc-7-on-ubfox

Đã thử nghiệm trên Ubuntu 16.04, tháng 10 năm 2018.

Ubuntu 17.10 trở lên

Có GCC 7.2 và clang 4 theo mặc định! https://packages.ubfox.com/artful/gcc | https://packages.ubfox.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)

GCC 8 ngày 16.04

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

đưa ra 8.1.0 kể từ 2018-11.

Mặc định trong Ubuntu 18.04:

Crosstool-NG

Nếu bạn thực sự nghiêm túc về vấn đề này, hãy biên dịch và sử dụng GCC của riêng bạn với Crosstool-NG như được giải thích tại: https://stackoverflow.com/questions/847179/multipl-glibc-lologists-on-a-single-host/52454603# 52454603

Điều này sẽ cho phép bạn sử dụng nhiều phiên bản GCC khác nhau trên nhiều phiên bản Ubuntu khác nhau mà không cần tải xuống các đốm màu từ PPA mà bạn không nhất thiết phải tin tưởng.


1

OP yêu cầu "cách cài đặt ...". Ngoài ra, cách biên dịch Clang 4.0.

Bạn có thể biên dịch từ mã nguồn bằng cách sử dụng tập lệnh từ kho lưu trữ GitHub của Microsoft ChakraCore .

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

Cập nhật LLVM_VERSION="3.9.1"ở dòng 7 đếnLLVM_VERSION="4.0.0"

sudo ./compile_clang.sh

Nó sẽ tải xuống và biên dịch Clang 4.0 (và toàn bộ chuỗi công cụ biên dịch) với sự hỗ trợ LLVM Gold.


3
"LLVM vàng" là gì?
einpoklum - phục hồi Monica

@einpoklum Tôi cho rằng đó là plugin vàng LLVM cho Trình liên kết vàng từ Binutils. Nó được sử dụng để tối ưu hóa thời gian liên kết.
Ruslan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.