Bagaimana cara menggunakan GCC 4.7 di tempat 4.6?


8

Jadi saya sedang mengerjakan sebuah proyek dan saya ingin menggunakan beberapa fitur C11 untuk C. Untuk menggunakan fitur-fitur tersebut GCC 4.7 diperlukan, jadi saya pergi ke synaptic dan mencari ke atas 4.7, dan saya menemukan paket-paket gcc-4.7-base jadi saya memasangnya [1].

Jadi sekarang gcc-4.7-base telah diinstal, saya diharapkan dapat menggunakan 4.7, tetapi tidak, ketika saya gcc --versionmasih menunjukkan 4.6.3 bahkan lebih, ketika saya mencoba langsung memanggil 4.7 (via /usr/bin/gcc-4.7) itu tidak ada, meskipun gcc-4.6executable memang ada.

Bagaimana cara "mengaktifkan" GCC 4.7? Saya baca di sini , Anda melakukan hal-hal gila update-alternatives, tetapi tidak berhasil bagi saya karena gcc-4.7executable tidak benar-benar ada di mesin saya.

Catatan: 1. Saya juga melihat gcc-4.6-base, jadi saya pikir saya akan menghapusnya, tetapi synaptic berusaha menghapus setiap paket yang saya instal dan menginstal Java runtime, jadi untuk alasan yang jelas saya memutuskan untuk tidak menghapusnya.

Jawaban:


13

Berikut ini bekerja untuk saya.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

Sumber untuk referensi


Saya tidak berpikir ini menjawab pertanyaan, karena OP secara khusus mengatakan update-alternativesrute tidak akan bekerja untuk mereka karena mereka tidak memiliki biner gcc-4.7. Memang, mencoba mengikuti petunjuk dalam jawaban ini setelah menginstal gcc-4.7-base menghasilkan kesalahan:update-alternatives: error: alternative path /usr/bin/gcc-4.7 doesn't exist.
waldyrious

0

The gccbiner dalam gcc-X.Ypaket, tidak gcc-X.Y-base. Yang terakhir adalah ketergantungan dari salah satu gcc-X.Yatau libstdc++.

Pada dasarnya, Anda cukup menginstal gcc-4.7dan kemudian menyebutnya sebagai gcc-4.7dari makefile Anda, atau gunakan install-alternativesuntuk menjadikannya default.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.