อัปเดตเป็น gcc และ g ++ ล่าสุดบน Ubuntu 16.04


11

ฉันเพิ่งพยายามปรับลดรุ่นเป็น gcc 4.7 เนื่องจากรหัส cfd ที่ฉันทำงานนั้นไม่ได้รวบรวมกับรุ่น gcc ล่าสุด แต่หลังจากข้อผิดพลาดมากมายและรหัสยังคงไม่คอมไพล์ฉันยอมแพ้และต้องการกลับไปที่คอมไพเลอร์ gcc และ g ++ ล่าสุด แต่ดูเหมือนว่าฉันอาจทำบางสิ่งบางอย่างยุ่งเหยิง

เมื่อฉันทำ:

sudo update-alternatives --remove-all gcc 
sudo update-alternatives --remove-all g++
sudo apt-get install gcc-6.2 g++-6.2

หรือแม้แต่ gcc-5.1 g ++ - 5.1 สำหรับเรื่องนั้นมันทำให้ฉันมีข้อผิดพลาดดังต่อไปนี้

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package gcc-6.2
E: Couldn't find any package by glob 'gcc-6.2'
E: Couldn't find any package by regex 'gcc-6.2'
E: Unable to locate package g++-6.2
E: Couldn't find any package by glob 'g++-6.2'
E: Couldn't find any package by regex 'g++-6.2'

และฉันก็ลองทำเช่นนี้มาก่อน

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

แต่ดูเหมือนจะไม่ทำงาน ในที่สุดเมื่อฉันเพิ่งทำ

sudo apt-get install gcc

มันบอกว่า

Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc is already the newest version (4:5.3.1-1ubuntu1).

ฉันรู้ว่าฉันยังคงต้องติดตั้งและกำหนดค่าทางเลือก แต่การทำเช่นนั้นจะไม่ทำงานดังต่อไปนี้

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5.3 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5.3 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

ขออภัยที่นี่ค่อนข้างยาวและโปรดแจ้งให้เราทราบหากคุณต้องการข้อมูลเพิ่มเติม ขอบคุณ!

แก้ไข: ฉันได้มันไปใช้งานจริงโดยการเปลี่ยน gcc-5.3 เป็น gcc-5 ในโค้ดข้างต้นซึ่งดูเหมือนจะเป็นสิ่งที่เรียกว่าใน usr / bin ฉันจะเก็บไว้ใช้อ้างอิงในอนาคตหากใครประสบปัญหาเดียวกัน


2
AFAIK gcc และ g ++ ไม่ได้ติดตั้งเป็นทางเลือกในการปรับปรุงโดยเริ่มต้น - แทนgccและแพคเกจการพึ่งพาติดตั้งเชื่อมโยงโดยตรงกับการอ้างอิงที่เริ่มต้นเช่นg++ /usr/bin/g++ -> g++-5คุณได้ลองติดตั้งgccและg++แพ็คเกจใหม่หรือไม่?
ขับเหล็ก

วิธีหนึ่งในการหลีกเลี่ยงปัญหาประเภทนี้คือการสร้าง VM และติดตั้งคอมไพเลอร์เวอร์ชันเก่าที่นั่น
NZD

โปรแกรมแก้ไขด่วนนี้สามารถแก้ไขได้ในการติดตั้งการอ่านรายการแพคเกจ ... เสร็จสิ้นการสร้างแผนภูมิการอ้างอิงข้อมูลสถานะการอ่าน ... เสร็จ gcc เป็นรุ่นใหม่ล่าสุดแล้ว (4: 7.3.0-3ubuntu2.1) 0 อัพเกรดแล้วติดตั้งใหม่ 0 ลบ 0 และไม่อัพเกรด 36
JOC KERS

คำตอบ:


5

รันคำสั่งต่อไปนี้ตามลำดับ ฉันได้รับข้อผิดพลาดเดียวกัน สิ่งนี้ใช้ได้สำหรับฉัน

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

9
เหตุใดจึงsudo apt-get updateมีการเรียกใช้สามครั้งแทนที่จะเป็นเพียงครั้งแรก โดยเฉพาะทำไมหลังจากการติดตั้งแพ็กเกจล่าสุด?
Eliah Kagan

gcc-snapshot ทำหน้าที่อะไร? ฉันจะลบเวอร์ชัน gcc ก่อนหน้า (4.8.4) ได้อย่างไร
abunickabhi

0

ต้องทำการอัปเดต apt-get เพื่อให้คอมพิวเตอร์ของคุณเข้าถึงที่เก็บที่เพิ่งถูกเพิ่มจึงทำให้เนื้อหานั้นพร้อมให้คุณใช้งาน หากคุณไม่เรียกใช้จากนั้นคอมพิวเตอร์ของคุณจะไม่ทราบว่ามีข้อมูลที่เก็บนั้น

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