Saya ingin menggunakan beberapa fitur C ++ yang hanya tersedia di versi bahasa yang lebih baru. Masalahnya adalah Ubuntu 15.04 (Vivid Vervet) memiliki 4.9.2 diinstal dan melihat output yang saya dapatkan dari apt-get install gcc :
Reading package lists... Done
Building dependency tree
Reading state information... Done
gcc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Dikatakan itu sudah versi terbaru. Saya tidak mengerti mengapa ...
Jawaban:
Satu-satunya pilihan yang ada adalah Membangunnya dari Sumber , karena Anda menjalankan versi Vivid (15.04) yang telah mencapai EOL (End Of Life).
Unduh kode sumber dan prasyaratnya:
Kompilasi sumber (catatan: perintah ini akan berbeda tergantung di mana Anda awalnya menyimpan arsip .bz2), Anda juga dapat memodifikasi opsi untuk
build
perintah. Dalam hal ini kita akan menggunakan opsi yang sangat mendasar:CATATAN : Pastikan Anda telah membaca dokumen untuk melihat opsi yang tersedia.
Sekarang kita siap membangun gcc
Jalankan
make
perintah untuk membangun gcc, langkah-langkah ini akan memakan waktu lama untuk selesai.Setelah fase di atas selesai, Anda dapat menginstal dibangun gcc dengan:
Setelah proses ini selesai, jalankan perintah
gcc --version
untuk memverifikasi bahwa instalasi telah selesai dengan sukses.sumber
-v
berdiri untuk-verbose
. Informasi lebih lanjut merujuk pada apa itu verbose sebenarnya~/gcc-6.3.0
, ke~/gcc-build
atau ke folder lain? Bukankah salah satu folder yang dibuat harus dihapus setelah menjalankan perintah ini atau apakah semuanya masih diperlukan?tar xzvf gcc-6.3.0.tar.bz2
hanya mencetakgzip: stdin: not in gzip format
;tar: Child returned status 1
;tar: Error is not recoverable: exiting now
, jadi saya membongkar arsip dengan manajer arsip.../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0
, saya mendapatkan/usr/bin/ld: cannot find crt1.o: No such file or directory
,/usr/bin/ld: cannot find crti.o: No such file or directory
,/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc
,/usr/bin/ld: cannot find -lgcc
dan kesalahan serupa.Ubuntu 15.04 telah mencapai akhir masa pakainya dan tidak memiliki dukungan, yang berarti tidak ada lagi pembaruan atau perbaikan (keamanan, bug atau fitur) akan dipublikasikan.
Anda harus memperbarui atau menginstal ulang dengan versi Ubuntu yang lebih baru.
Saya akan merekomendasikan pergi dengan 16,10 (dukungan 9 bulan) yang sudah memiliki cabang gcc 6.x pada repo resmi.
Tetapi Anda juga dapat menggunakan 16,04 LTS (dukungan 5 tahun) dan menambahkan ppa yang tidak tepercaya / tidak dijamin untuk mendapatkan versi gcc terbaru seperti ini
Secara pribadi, saya akan memilih pergi dengan 16.10 dan terus memperbarui dari saluran resmi ke versi perangkat lunak / Ubuntu yang lebih baru tanpa menambahkan (kebanyakan) ppa.
sumber