ติดตั้ง GCC 7 บน Ubuntu หรือไม่?


11

ฉันพยายามทำการทดสอบภายใต้ GCC 7 ตามวิธีการติดตั้ง gcc-7 หรือ clang 4.0 บน Ubuntu.SE เราสามารถทำการติดตั้ง GCC 7 บน Ubuntu:

add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7

คำสั่งล้มเหลวในการติดตั้ง:

# apt-get install -y gcc-7
...
E: Unable to locate package gcc-7

และลอง 7.1:

# apt-get install -y gcc-7.1
...
E: Unable to locate package gcc-7.1
E: Couldn't find any package by glob 'gcc-7.1'
E: Couldn't find any package by regex 'gcc-7.1'

ตามรายการแพ็คเกจทั้งหมดจากที่เก็บใน ubuntu / debianบน Server Fault เราสามารถค้นหา repo เฉพาะสำหรับแพ็คเกจด้วย:

# grep ^Package: /var/lib/apt/lists/ppa.launchpad.net_*_Packages | grep gcc-7
#

แต่ฉันไม่แน่ใจว่าคำสั่งข้างต้นกำลังค้นหาอยู่ppa:ubuntu-toolchain-rหรือไม่

ฉันทำสิ่งต่าง ๆ เข้าด้วยกัน แต่พวกเขาไม่ทำงานตามที่คาดไว้ คำตอบ Ubuntu.SE ไม่ถูกต้องการค้นหาข้อผิดพลาดเซิร์ฟเวอร์ล้มเหลวหรือฉันกำลังทำอะไรผิดพลาด

(ฉันไม่มีเครื่อง Debain 8 สำหรับแพ็คเกจ gcc-7และ Fedora 25 ดูเหมือนจะขาด GCC 7 ดังนั้นฉันจึงติดอยู่กับ Ubuntu)

ผมทำอะไรผิดหรือเปล่า? หรือฉันจะติดตั้ง GCC 7 ได้อย่างไร


# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.10
Release:        16.10
Codename:       yakkety
ubuntu  apt  gcc  ppa 

3
ubuntu-toolchain-r/testPPA ไม่ปรากฏขึ้นเพื่อให้ GCC-7 สำหรับ Ubuntu 16.10 (Yakkety) - แม้ว่ามันจะไม่ให้ทั้งสอง 16.04 (Xenial) และ 17.04 (Zesty) - ที่คุณสามารถดูได้โดยไปที่“PPA สำหรับอูบุนตู toolchain อัปโหลด ( จำกัด )” ทีมงานและ กรองตามซีรี่ส์
steeldriver

ขอบคุณ Steeldriver การขยายเครื่องหมายรูปหมวกที่มีข้อความว่า"รายละเอียดทางเทคนิคเกี่ยวกับ PPA นี้"ดูเหมือนว่าจะแสดงใน 16.10 แปลก ... ฉันคิดว่าฉันจะระงับรายงานข้อผิดพลาดนี้จนกว่าเราจะหา distro ที่ให้ GCC 7 ได้

PPA พร้อมใช้งานสำหรับ 16.10 น แต่มันไม่ได้ให้แพ็คเกจเหมือนกันทั้งหมด - อาจเป็นเพราะ 16.10 ไม่ใช่รุ่น LTS
steeldriver

สำหรับผู้ที่ไม่สามารถใช้งานได้ (เช่นฉัน) ให้ดูที่ฉันจะยกเลิกการเพิ่ม PPA และติดตั้งแพคเกจได้อย่างไร บน Ubuntu Stack แลกเปลี่ยน

คำตอบ:


7

ในการติดตั้งgcc-7บน Ubuntu คุณควรใช้ppaนี้:

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

จากนั้นเรียกใช้: apt-cache search gcc-7

ตัวอย่างผลลัพธ์:

gcc-7-base - GCC, the GNU Compiler Collection (base package)
gcc-7 - GNU C compiler
gcc-7-multilib - GNU C compiler (multilib support)
gcc-7-plugin-dev - Files for GNU GCC plugin development.
gcc-7-test-results - Test results for the GCC test suite
lib32gcc-7-dev - GCC support library (32 bit development files)
libgcc-7-dev - GCC support library (development files)
gcc-7-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
gcc-7-hppa64-linux-gnu - GNU C compiler (cross compiler for hppa64)
gcc-7-locales - GCC, the GNU compiler collection (native language support files)
gcc-7-source - Source of the GNU Compiler Collection
libx32gcc-7-dev - GCC support library (x32 development files)
gcc-7-offload-nvptx - GCC offloading compiler to NVPTX
lib64gcc-7-dev - GCC support library (64bit development files)

ติดตั้งgcc-7:

sudo apt install gcc-7

6
ขอบคุณ GAD3R คุณรู้หรือไม่ว่าใครคือ jonathonf ฉันพยายามใช้อุปกรณ์ของ Ubuntu เพราะเชื่อถือได้แล้ว มิฉะนั้นฉันจะต้องกระโดดผ่านห่วงของการหาผู้ที่เป็น jonathonf และตรวจสอบว่าเขาเป็นแหล่งที่น่าเชื่อถือ

ควรทำงานกับ linaro ด้วยหรือไม่
Nadav B

2

Ubuntu 18.04 มีทั้ง GCC 7 (7.3.0-16ubuntu3 ในขณะที่ฉันกำลังเขียนคำตอบนี้) และ GCC 8 (8-20180414-1ubuntu2) นอกจากนี้ไม่ได้อีกต่อความจำเป็นของการเพิ่มที่เก็บของบุคคลที่สาม: sudo apt-get install gcc-7เพียงแค่วิ่ง


1

หากคุณต้องการติดตั้งอุปกรณ์ทดสอบด้วยคอมไพเลอร์แล้วFedora 26มาพร้อมกับ GCC 7.1

นอกจากนี้คุณยังสามารถค้นหา GCC 7 ในDebian 10 / Buster (Debian 9 ที่เปิดใช้งาน repo การทดสอบ) สำหรับ Debian apt-get install gcc-7 g++-7คุณต้อง

เพื่อความสมบูรณ์มันไม่ชัดเจนว่าคอมไพเลอร์ Microsoft เวอร์ชันใดรองรับ C ++ 17 และstd::byte(เหตุผลที่ฉันต้องการคอมไพเลอร์สำหรับการทดสอบ)

และขอบคุณ GAD3R สำหรับความช่วยเหลือของเขา เหตุผลที่ฉันหลีกเลี่ยงเพราะฉันไม่สามารถสร้างที่มาสำหรับสัญญาซื้อขายไฟฟ้าบางส่วนได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.