จะติดตั้ง gcc-7 หรือ clang 4.0 ได้อย่างไร?


27

ฉันต้องการลองใช้คุณสมบัติ C ++ 17 และฉันต้องการติดตั้งคอมไพเลอร์ที่ได้มาตรฐาน (โดยเฉพาะ GCC) ฉันยังใหม่กับ Linux และ Ubuntu โดยสิ้นเชิงและฉันก็ไม่เข้าใจมากนัก

ฉันพยายามติดตาม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คำสั่งคุณวิ่งไม่เหมือนกันเป็นหนึ่งที่ได้รับบนหน้าเว็บของ PPA ดังนั้นจึงไม่น่าแปลกใจมันไม่ทำงาน ลองเรียกใช้ถูกต้อง
fkraiem

ฉันติดตั้งtestแพคเกจก่อน อัปเดตคำถาม
nikitablack

add-apt-repositoryเนื่องจากชื่อของมันหมายถึงการเพิ่มที่เก็บมันไม่ได้ติดตั้งแพคเกจ apt install gcc-7ตอนนี้คุณสามารถทำ
fkraiem

การทดสอบ PPA มีแพ็คเกจ gcc-7 อยู่ในนั้น คุณยังไม่ได้ลองติดตั้งหรือไม่?
dobey

2
@nikitablack ดูเหมือนว่า gcc 7 จะไม่พร้อมใช้งานสำหรับ 16.04: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/แต่คุณอาจมีโอกาสดีกว่ากับเสียงดังกราวลองดูที่ฐานของหน้านี้: apt.llvm .org
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
ใช่มันใช้งานได้ สำหรับวันนี้ PPA นี้ยังใช้งานได้add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
nikitablack

clang-4.0.0 ได้รับการติดตั้ง แต่ clang -v แสดง 3.8.0
RED

ทั้งสองถูกติดตั้ง 4.0.0 และ 3.8.0 แต่โดยค่าเริ่มต้นระบบอ่าน 3.8 สิ่งที่ยุ่งเหยิงในขณะที่ใช้ Emscripten ซึ่งอ่านสิ่งนี้ แต่ต้องการ 4.0.0
สีแดง

repo นี้เรียกใช้จากการเชื่อมต่อที่อยู่อาศัยหรืออะไร
Jonathan Henson

23

Ubuntu 16.04 และต่ำกว่า

มีการทดสอบอย่างเป็นทางการของ Ubuntu GCC PPA ซึ่งควรเป็นที่ต้องการ:

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 ได้เปิดตัวในเดือนพฤษภาคม 2017ซึ่งช้าไปสำหรับการเปิดตัวหลัก 17.04

PPA ไม่มี GCC สำหรับรุ่นใหม่เช่น 16.10 เฉพาะ LTS 12.04, 14.04 และ 16.04 ตามที่สามารถดูได้ที่: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test | ภาพรวม ฉันคิดว่ามันมี 17.04 ก่อนหน้านี้ แต่มันถูกลบออก ดูเพิ่มเติมที่: https://unix.stackexchange.com/questions/371737/install-gcc-7-on-ubuntu

ทดสอบบน Ubuntu 16.04, ตุลาคม 2018

Ubuntu 17.10 ขึ้นไป

มี GCC 7.2 และ clang 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)

GCC 8 ในวันที่ 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

ให้ 8.1.0 ตั้งแต่ 2018-11

ค่าเริ่มต้นใน Ubuntu 18.04:

Crosstool-NG

หากคุณจริงจังกับเรื่องนี้จริงๆให้รวบรวมและใช้ GCC ของคุณเองด้วย Crosstool-NG ดังที่อธิบายไว้ที่: https://stackoverflow.com/questions/847179/multiple-glibc-library-on-a-single-host/52454603# 52454603

สิ่งนี้จะช่วยให้คุณใช้ GCC หลากหลายรุ่นใน Ubuntu หลายรุ่นโดยไม่ต้องดาวน์โหลด blobs จาก PPA ที่คุณไม่จำเป็นต้องเชื่อถือ


1

OP ถามถึง "วิธีการติดตั้ง ... " หรือวิธีการรวบรวม Clang 4.0

คุณอาจจะรวบรวมจากรหัสที่มาจากการใช้สคริปต์ของ Microsoft ChakraCore ของพื้นที่เก็บข้อมูล

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

มันจะดาวน์โหลดและรวบรวม Clang 4.0 (และเครื่องมือคอมไพเลอร์ทั้งหมด) ด้วยการสนับสนุน LLVM Gold


3
"LLVM gold" คืออะไร
einpoklum - คืนสถานะโมนิก้า

@ einpoklum ฉันคิดว่ามันเป็นปลั๊กอินทอง LLVMสำหรับ Gold Linker จาก Binutils มันใช้สำหรับการเพิ่มประสิทธิภาพเวลาเชื่อมโยง
Ruslan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.