Bagaimana cara menginstal g ++ 4.7.2 & c ++ 11 di CentOS 5.x?

8

Saya mencoba menginstal g++dan stabil terbaru c++11. Tuan rumah saya berhasil yum installdan berpikir bahwa itu adalah yang terbaru, tetapi tidak, dan mereka sekarang mengatakan bahwa ini di luar tingkat dukungan mereka.

Saya telah mempelajari bagaimana melakukan ini, dan saya tidak dapat membuat sesuatu bekerja, atau saya tidak tahu apa yang dikatakan solusi yang disarankan.

Apa cara termudah untuk menginstal g++4.7.2 dan c++11pada CentOS 5.9 ?

jasonwryan
sumber
2
Saya tidak melihat apa-apa dalam hal itu (di mata saya yang sangat tidak berpengalaman) memerlukan beberapa fitur C ++ baru. Untuk menginstal perangkat lunak tambahan (dari sumber, tidak kurang) tidak bisa dianggap enteng (jika Anda menggunakan CentOS, itu mungkin aplikasi perusahaan). Tidak untuk seseorang dengan pengalaman Linux berjam - jam , dalam hal apa pun. Pertimbangkan kembali pilihan Anda dengan cermat.
vonbrand
1
apa yang mengharuskan lambda begitu mendesak? Mungkin taruhan terbaik Anda adalah menginstal Fedora terbaru, di mana gcc-4.7.2 adalah kompiler default, dikelola oleh distribusi ?
vonbrand
2
Saya bukan ahli C ++, tetapi "mengurutkan berdasarkan N-th int dalam vektor int" memerlukan perbandingan antara vektor, dan itu bukan persyaratan eksotis hanya untuk dipenuhi dengan C ++ terbaru. Tentu, mungkin lebih mudah, tetapi jika sesuatu yang sederhana tidak dapat dilakukan dari versi pertama STL, saya akan benar-benar terperangah. Dapatkan pakar C ++ di dalamnya?
vonbrand
Sudahkah Anda mempertimbangkan perpustakaan BOOST? Sebagian besar C ++ 11 berasal dari sana ...
Aaron D. Marasco
c ++ 11 bukan kompiler, ini standar. lihat jawaban saya.
PersianGulf

Jawaban:

9

Dari jawaban ini untuk "Instal gcc 4.7 pada CentOS [6.x]", cara termudah untuk mendapatkan g++4.7, dan alat dan pustaka yang diperlukan, untuk CentOS 5.x adalah melalui devtoolspaket:

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools/devtools.repo 
yum --enablerepo=testing-devtools-6 install devtoolset-1.0

Karena Anda menjalankan g++secara manual (sebagai lawan melalui make), Anda harus memperbarui Anda $PATHvariabel sehingga shell Anda akan menggunakan baru gcc, g++, dll binari:

export PATH=/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH

Pada titik ini, Anda g++harus versi 4.7.0

$ g++ --version
g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Ketahuilah bahwa menginstal gccdan menghubungkan alat-alat dan pustaka dengan cara ini bergantung pada pengelola repositori untuk menjaga agar paket mereka tetap mutakhir.

Jika Anda tertarik untuk terus gccmemperbarui, Anda mungkin ingin mempertimbangkan membangun gccdari sumber .

Selain itu, mengkompilasi program dengan versi berbeda dari g++dan libstdc++diinstal pada sistem Anda dapat menyebabkan semua jenis Kesenangan , mengatasi yang berada di luar cakupan jawaban ini. Mungkin layak untuk pindah ke distribusi Linux yang memiliki dukungan untuk apa yang Anda lakukan.

Reed Kraft-Murphy
sumber
Saya telah memperbarui instruksi - paket yang ingin Anda yuminstal adalah devtoolset-1.0, karena berisi alat pengembangan lain yang diperlukan; dan Anda akan ingin memperbarui $PATHvariabel Anda sejak Anda meluncurkan g++dari baris perintah.
Reed Kraft-Murphy
Saat saya membuat konsol baru, gcc masih di versi lama. Bagaimana cara menjadikan versi baru sebagai standar?
BT
1
Untuk mengatur ini secara permanen, Anda harus menambahkan export PATH..baris di ~ /. Profil atau ~. / Profile_bash atau yang setara: superuser.com/questions/809250/…
BT
Masih menunjukkan "g ++ (GCC) 4.1.2" setelah ini :-(
IllidanS4 ingin Monica kembali
1

Pengelola paket sangat bagus, tetapi (dapat dimengerti) umumnya tidak akan menyertakan versi perangkat lunak terbaru. CentOS menjadi distribusi terutama yang berfokus pada server, mendukung stabilitas (dan pengujian ekstensif) daripada memiliki yang terbaru dan bersinar. Berikut ini solusinya:

Ubah distro

Distribusi lain seperti Arch Linux, Sabayon Linux atau Debian "Sid" termasuk versi terbaru jauh lebih cepat. Anda dapat mempertimbangkan untuk mengubah distro.

Bangun sendiri

Jika Anda terjebak dengan CentOS, taruhan terbaik Anda adalah membangun gcc dari sumber . Itu berarti mendapatkan kode sumber, memastikan dependensi sudah ada pada sistem Anda (jika tidak, saya yakin Anda bisa mendapatkannya dari manajer paket CentOS), mengkompilasi sumber ke dalam biner yang dapat dieksekusi, dan menginstal yang dapat dieksekusi pada Anda sistem .

Ini bukan cara termudah untuk melakukannya, tetapi Anda akan belajar banyak tentang Unix dalam prosesnya. Pastikan untuk membaca dokumen beberapa kali untuk memastikan Anda mendapatkan semuanya, dan ajukan pertanyaan jika sesuatu yang spesifik tidak jelas.

Sabar

Pada titik tertentu, versi ini (atau lebih baru) dari gcc / g ++ akan masuk ke manajer paket. Jika Anda menunggu (hingga beberapa bulan, saya tidak terlalu terbiasa dengan siklus rilis CentOS), Anda pada akhirnya akan mendapatkan yang Anda inginkan.

rahmu
sumber
1

Hm, saya terlalu baru untuk mengomentari jawaban Reed. Itu bekerja dengan baik untuk saya. Satu-satunya hal yang ingin saya catat (mungkin ini sesuatu untuk Reed?) Adalah saya harus menginstal dengan baris perintah yang sedikit berbeda:

yum --enablerepo=testing-devtools-5 install devtoolset-1.0

(Jawaban Reed punya --enablerepo=testing-devtools-6, yang tidak berhasil.)

Sean Suchter
sumber