Pertanyaan Mendapatkan + menginstal gcc / g ++ 4.9 di Ubuntu? [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

Bagaimana cara menginstal versi terbaru gcc dan g ++?

Saya menggunakan berbagai fitur C ++ 11 dan C ++ 1y; itulah mengapa saya membutuhkan ini.


78
2018-03-02 03:05


asal


@muru Kecuali pertanyaan saya beberapa bulan sebelumnya. Jadi miliknya adalah duplikat saya. - A T
Gandakan independen waktu? - Itu kebijakan yang aneh. - Dan sedikit keliru? - A T
Juga saya berpendapat bahwa jawaban atas pertanyaan saya adalah kualitas yang lebih tinggi dan heterogenitas yang lebih besar daripada miliknya. Jumlah suara juga sebanding. Jadi saya menyerukan penggabungannya dengan milik saya, bukan sebaliknya. - A T


Jawaban:


Anda dapat menginstal dekat dengan versi upstream GCC dari Ubuntu Toolchain PPA: https://wiki.ubuntu.com/ToolChain#PPA_packages

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

Diuji pada Ubuntu 14.04.


107
2018-04-28 08:14



Saya memiliki Ubuntu 14.04 dan itu tidak bekerja untuk saya. Apakah Anda meninggalkan langkah keluar? Saya tidak melihat g ++ - 4.9 in launchpad.net/~ubuntu-toolchain-r/+archive/test - test
tes, harus bekerja: gist.github.com/rutsky/bc40c6b4bee0ab5f9ee4 - Vladimir Rutsky
Tetapi tidak berhasil untuk saya pada 12.04: E: Tidak dapat menemukan paket gcc-4.9 E: Tidak dapat menemukan paket apa pun oleh regex 'gcc-4.9' Terlihat seperti 12.04 secara khusus tidak didukung oleh repositori ini, meskipun versi Ubuntu yang lebih baru dan lebih lama didukung. - Nickolai Leschov
Sebagai langkah terakhir, saya merasa perlu untuk mengubah tautan simbolik /usr/bin/g++ dari target /usr/bin/g++-4.8 ke target /usr/bin/g++-4.9. ... atau membiarkannya tidak berubah tetapi aktifkan g++-4.9 langsung. Akhirnya: std :: regex support. - DavidO
@DavidO - Anda harus dapat menggunakan sistem alternatif untuk menghindari langsung mengedit symlink. Lihat askubuntu.com/q/26498/5682. - Josh Kelley


Intro

mengajari seseorang untuk memancing dll. dll.

Bagaimana cara membangun paket sumber dan sajikan dari repositori lokal dengan cara yang ramah-tamah. Ini akan bekerja pada distribusi apa saja asalkan dependensi dapat dipenuhi / Metode ini tidak mengharuskan Anda untuk menginstal build-deps untuk setiap paket dan mencemari mesin Anda dengan paket-paket yang asing, ini akan membiarkan Anda mengikuti paket-paket karena mereka diperbarui dalam debian eksperimental. . Hanya perlu beberapa menit untuk melakukannya sekali, dan kemudian dapat digunakan kembali untuk membangun kembali paket apa pun yang Anda perlukan tanpa bergantung pada orang lain untuk mengemas ppa untuk Anda atau mengunduh sekelompok berkas .deb yang berbeda.

Manfaat dari membangun vs menarik raw. Deb dari debian adalah bahwa ini akan membangun paket terhadap paket-paket dalam distribusi Anda yang mungkin berbeda dalam versi / revisi dari apa yang digunakan sebagai dependensi-build untuk distribusi debian. Ini lebih-atau-kurang proses untuk paket backporting. Anda juga dapat menggunakan distribusi ubuntu untuk membuat paket yang ditargetkan pada distribusi lainnya (target dalam hal ini berarti membangun terhadap paket repositori standar) tanpa kerumitan.

Dasar-Bagaimana-untuk-Membangun-deb-

(bukan untuk upload ppa - ini memiliki persyaratan yang tidak dapat diterima dari launchpad

Mungkin dibutuhkan: packaging-dev (menarik build-essential pubilder ubuntu-dev-tools diantara yang lain)

  1. Mengatur pbuilder (ini memungkinkan Anda membuat paket di chroot tanpa mencemari sistem Anda dengan paket build-dependency)

    • sudo pbuilder create,
    • jika Anda ingin membangun untuk distribusi tertentu, (pbuilder menggunakan rilis sistem build dalam chroot) yang dapat Anda gunakan pbuilder-dist [precise/oneric/trusy/etc...] create
  2. Dapatkan sumber debian

    • pull-debian-source gcc-4.9 [4.9.0-6]  revisi debian spesifik adalah opsional, tetapi dapat berguna jika Anda ingin menarik revisi eksperimental / tidak stabil / pengujian / stabil
    • Anda juga bisa tarik dari distro ubuntu tertentu dengan menambahkannya ke sources.list sebagai deb-src dan menggunakan sudo apt-get src 
  3. Paket Bangun

    • sudo pbuilder build gcc-4.9_4.9.0-6.dsc 
    • Dalam file yang diunduh ada a .dsc file, untuk gcc terbaru itu gcc-4.9_4.9.0-6.dsc yang merupakan file deskriptor paket. .orig.tar.[gz/xz] adalah tarbal sumber.
  4. Buat repositori Apt lokal

    • mkdir /convenient/place/for/repo
    • cp /var/cache/pbuilder/result/* /path/to/repo
    • (dengan asumsi Anda di repo dir) apt-ftp archive packages . > Packages
    • (salah satu dari banyak cara untuk melakukan ini) sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list
    • Perhatikan Anda juga dapat melakukan langkah ini dengan .debs diunduh dari mana saja (lewati langkah 1-3)
  5. Memasang

    • apt-get update; apt-get install gcc-4.9 g++-4.9

Trik Tambahan

Dependensi Backporting Mudah

Menggunakan paket yang dikompilasi sendiri untuk memenuhi dependensi ketika membuat paket. (Saya mengaturnya dengan folder ~/pbuilder  ~/pbuilder/precise_local(repo paket lokal untuk tepat) dan ~/pbuilder/precise_hooks (untuk skrip hook))

Tambahkan yang berikut ini ke Anda ~/.pbuilderrc

OTHERMIRROR="deb [trusted=yes] file:///home/user/pbuilder/precise_local ./"

BINDMOUNTS="/home/user/pbuilder/precise_local" 

HOOKDIR="/home/user/pbuilder/precise_hooks"

EXTRAPACKAGES="apt-utils"

di precise_hooks buat file D05local (dalam mode unix / linux yang umum, awalan D menceritakan kapan skrip terhubung 05 adalah nama-pemesanan dan local hanya namanya saja, jika Anda hanya memiliki satu kail maka tidak penting apa yang disebut selama itu D adalah awalan

skrip adalah satu-liner

(cd /home/user/pbuilder/precise_local ; apt-ftparchive packages . > Packages)

Sekarang semua paket dimasukkan precise_local akan memuaskan build-dependent. Ini sangat berguna untuk membangun pohon ketergantungan lokal ketika paket back-porting yang memiliki dependensi yang juga perlu backporting

Solusi VM

Untuk melakukan ini dengan cara yang lebih bersih, gunakan gambar VM atau kontainer LXC untuk memenjarakan kekacauan ini.

Menerapkan tambalan khusus

Anda dapat menerapkan tambalan khusus di sebagian besar paket debian yang digunakan quilt, patch quilt dapat menggunakan diffs dari kebanyakan VCS (lihat: menggunakan selimut )

Ada langkah tambahan, Anda harus membangun kembali .dsc dan .debian.tar.gz. Cara terbersih yang saya tahu adalah bzr-builddeb ini memiliki IMHO tingkat keberhasilan tertinggi (dibandingkan dengan git-build-package dan skrip pembantu lainnya) dan jauh lebih bersih daripada menelepon debuild secara langsung (bzr= VCS bazaar kanonik)

  1. sudo apt-get install bzr-builddeb 
  2. (asumsi .orig.tar.gz diekstraksi dan .debian.tar.gz diekstrak dan ditempatkan di dalamnya
    • bzr init
    • bzr add
    • bzr commit
  3. (PILIHAN)
    • memodifikasi debian/changelog
    • tambahkan tambalan ke debian/patches/ dan modifikasi debian/patches/series (quilt juga memiliki utilitas untuk menambahkan tambalan atau bagi Anda untuk memodifikasi dengan cepat, lihat dokumentasi)
    • bzr add debian/
    • bzr commit
  4. bzr builddeb -- -S -us -uc Ini membangun kembali file sumber dan meninggalkannya tidak ditandatangani (penandatanganan gpg diperlukan untuk PPA / distro upload, tetapi tidak untuk repo lokal pribadi)
  5. cd ../build-area/ Lanjutkan dari Langkah 3 di atas.

Langkah 1-4 di sini cukup banyak yang perlu Anda unggah ke PPA (mereka tidak mengambil file biner), tetapi Anda memerlukan beberapa langkah untuk memuaskan birokrasi launchpad (ini menjawab memberikan penjelasan, ini satu memiliki beberapa tautan)


42
2018-06-12 16:03



Benar-benar keren :-) - Marcos Roriz Junior
beberapa langkah hilang untuk 14.04. sudo pbuilder build gcc-4.9_4.9.0-6.dsc gagal. - jfs


memasang

sudo su -
apt-get install build-essential
add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install gcc-4.9 g++-4.9 cpp-4.9

setelah itu jika Anda memeriksa versi gcc Anda akan menemukan versi lama

gcc --version

jadi kita bisa memperbaikinya dengan simbolik sederhana

cd /usr/bin
rm gcc g++ cpp
ln -s gcc-4.9 gcc
ln -s g++-4.9 g++
ln -s cpp-4.9 cpp

atau

 Anda dapat memperbarui menggunakan update-alternatives

// Sebenarnya aku mencoba simbolik dan aku tahu ini akan berhasil tetapi kamu dapat menggunakan simbolik untuk mendapatkannya tanpa masalah // mohon koreksi saya jika saya salah

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 40 --slave /usr/bin/gcc gcc /usr/bin/gcc-4.9
update-alternatives --config gcc
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.9 40 --slave /usr/bin/cpp cpp /usr/bin/cpp-4.9
update-alternatives --config cpp
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
update-alternatives --config g++

atau

 Anda hanya dapat mengkompilasi

/usr/bin/gcc4.9 filename.c

gcc-4.9 sama seperti gcc-4.8 "ubuntu 14.04 gcc" ini bukan penghormatan besar

proof


26
2017-08-05 08:27



gcc 4,9 memiliki perbedaan besar dengan 4,8, dan dukungan opnenmp 4.0.
bisakah kau memberiku perbedaan, tolong! - hwez
Ini memiliki dukungan c ++ 1y (C ++ 14), sebagai permulaan. - Drew Noakes
Artikel tentang fitur gcc 4.9: isocpp.org/blog/2014/04/gcc-4.9.0 - Kurt Krueckeberg


Debian menawarkan paket: https://packages.debian.org/jessie/gcc-4.9 - Untuk mencegah masalah dengan kompatibilitas Ubuntu / Debian; jangan menambahkannya ke daftar sources.list Anda.

Sebagai gantinya, cukup unduh semua ini:

binutils_2.25-5_amd64.deb
cpp_4.9.2-2_amd64.deb
g++_4.9.2-2_amd64.deb
gcc_4.9.2-2_amd64.deb
gcc-4.9-base_4.9.2-10_amd64.deb
libasan1_4.9.2-10_amd64.deb
libatomic1_4.9.2-10_amd64.deb
libcilkrts5_4.9.2-10_amd64.deb
libgcc1_4.9.2-10_amd64.deb
libgcc-4.9-dev_4.9.2-10_amd64.deb
libgomp1_4.9.2-10_amd64.deb
libitm1_4.9.2-10_amd64.deb
liblsan0_4.9.2-10_amd64.deb 
libmpfr4_3.1.2-2_amd64.deb
libquadmath0_4.9.2-10_amd64.deb
libstdc++-4.9-dev_4.9.2-10_amd64.deb
libstdc++6
libtsan0_4.9.2-10_amd64.deb
libubsan0_4.9.2-10_amd64.deb

Dari server Debian, misalnya:

http://ftp.us.debian.org/debian/pool/main/b/binutils/binutils_2.25-5_amd64.deb

Kemudian instal, misalnya: $ for package in *.deb; do sudo dpkg --install "$package"; done

[Lebih mudah untuk menjalankan bash loop beberapa kali sampai semua dependensi tertutup daripada mengingat urutan yang Anda unduh!]


8
2018-03-02 03:05



Kedua tautan itu mati ... - Raghav RV
Nah tidak masalah lagi, Ubuntus baru memiliki versi gcc lebih baru dari 4.9 - A T
Pertanyaannya adalah untuk menginstal g ++ 4.9 di Ubuntu ... Pada dasarnya tidak pada salah satu "Ubuntus baru" ...;) - Raghav RV
Oke @RaghavRV Saya telah memperbarui semua nama dan URL dep - A T


Saat ini (20141102) menambahkan AKP dan memanggil perintah di atas apt-get install gcc-4.9 g++-4.9 cpp-4.9akan mencetak banyak paket yang disarankan. Instal semuanya kecuali untuk libvtv0-dbg (yang memiliki konflik ketergantungan):

apt-get install gcc-4.9 g++-4.9 cpp-4.9 gcc-4.9-locales g++-4.9-multilib libstdc++6-4.9-dbg gcc-4.9-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg lib32stdc++6-4.9-dbg libx32stdc++6-4.9-dbg

(lewati paket -dbg jika mereka tidak tertarik kepada Anda), dan kemudian lakukan apt-get dist-upgrade --auto-remove. Langkah terakhir itu pada dasarnya akan mengganti gcc-4.8 Anda dengan gcc-4.9 (tetapi tidak menghapus versi yang lebih lama), dan menarik kompiler fortran up-to-date pada saat yang bersamaan.


2
2017-11-02 19:09





Saya harus memaksa versi untuk paket gcc-4.9-base untuk melewati pesan kesalahan yang Anda posting. Kemudian menginstal bekerja

sudo apt-get install gcc-4.9-base=4.9.2-0ubuntu1~14.04

Sekarang Anda bisa melakukan reguler

sudo apt-get install gcc-4.9

2
2018-04-13 16:51



Dalam kasus saya, saya harus memaksa versi tertentu libstdc++6, yang merupakan ketergantungan. Untuk beberapa alasan ingin menggunakan versi lama yang dianggapnya versi yang lebih baru, sehingga tidak akan meng-upgrade tanpa memaksa. - Emre


Instal GCC GNU 4.9

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

sudo apt-get install gcc-4.9

Hapus versi gcc sebelumnya dari daftar aplikasi default (jika sudah ada)

sudo update-alternatives --remove-all gcc

Buat GCC 4.9 compiler default pada sistem

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --config gcc

Pembaruan terbaru GCC 4.9.1 adalah rilis perbaikan bug dari GCC 4.9 cabang yang berisi perbaikan penting untuk regresi dan bug serius di GCC 4.9.0 dengan lebih dari 88 bug diperbaiki sejak rilis sebelumnya. Selain itu, rilis GCC 4.9.1 mendukung OpenMP 4.0 juga di Fortran, bukan hanya di C dan C ++

Catatan: Diperiksa di ubuntu 14.04 LTS


2
2017-08-25 05:56