CentOS 5.xにg ++ 4.7.2およびc ++ 11をインストールする方法


8

最新の安定版とをインストールしようとしg++ていc++11ます。私のホストはそれをyum installやり遂げ、それが最新のものであると考えましたが、最新ではなく、これは彼らのサポートのレベルを超えていると今言っています。

私はこれをどのように行うかをすべて調べましたが、何も機能しません、または提案された解決策が何を言っているのかわかりません。

g++4.7.2およびc++11CentOS 5.9にインストールする最も簡単な方法は何ですか?


2
非常に経験の浅い目で)いくつかの新しいC ++機能が必要であるということは何もわかりません。追加のソフトウェアを(ソースから、それ以上に)インストールするのは簡単ではありません(CentOSを使用している場合、それはおそらくエンタープライズアプリケーションです)。いずれにせよ、何時間ものLinuxの経験がある人のためではありません。オプションを慎重に再検討してください。
フォンブランド、2013

1
ラムダがそんなにしつこく必要なのは何ですか?おそらくあなたの最善の策は、gcc-4.7.2がデフォルトのコンパイラであり、ディストリビューションによって維持されている最新のFedoraをインストールすることでしょうか?
フォンブランド2013

2
私はC ++の専門家ではありませんが、「intのベクトルでN番目のintで並べ替える」には、ベクトル間の比較が必要です。これは、最新のC ++で満たすだけの特別な要件ではありません。確かに、もっと簡単かもしれませんが、STLの最初のバージョンから単純なことを実行できなかった場合、私は完全に驚きます。ボードにC ++エキスパートを派遣しますか?
フォンブランド2013

BOOSTライブラリを検討しましたか?C ++ 11の大部分はそこから来ました...
アーロンD.マラスコ2013

c ++ 11はコンパイラーではなく、標準です。私の答えを見てください。
PersianGulf 2013年

回答:


9

この答えは、「[6.xの] CentOSの上でGCC 4.7をインストールする」に、取得する最も簡単な方法g++はCentOS 5.xの4.7を、必要なツールとライブラリは、経由しているdevtoolsパッケージ:

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

あなたが実行しているのでg++(経由とは反対に、手動でmake)、あなたは更新する必要があります$PATHあなたのシェルが新しい使用しますので、変数をgccg++バイナリなど:

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

この時点で、g++バージョン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.

gccこの方法でインストールおよび関連するツールとライブラリは、パッケージを最新の状態に保つためにリポジトリメンテナに依存していることに注意してください。

あなたが保つことに興味があればgcc最新の状態に、あなたは検討する必要があります建物gccのソースから

また、システムにインストールされているとは異なるバージョンのg++およびを使用してプログラムをコンパイルすると、libstdc++あらゆる種類のFunが発生する可能性があり、これはこの回答の範囲を超えています。あなたがやっていることをサポートするLinuxディストリビューションに移行する価値があるかもしれません。


手順を更新しました- yumインストールするパッケージはです。これにはdevtoolset-1.0、他の必要な開発ツールが含まれています。コマンドラインから$PATH起動するので、変数を更新する必要がありますg++
リードクラフトマーフィー

新しいコンソールを作成しても、gccはまだ古いバージョンのままです。新しいバージョンをデフォルトにするにはどうすればよいですか?
BT

1
永久にこれを設定するには、追加する必要がありますexport PATH..。あなたの〜/ .profileまたは〜/ profile_bashまたは同等の行を:superuser.com/questions/809250/...
BT

この後も
引き続き

1

パッケージマネージャーはすばらしいですが、(当然のことながら)通常、最新バージョンのソフトウェアは含まれていません。CentOSは、特にサーバーに焦点を当てたディストリビューションであり、最新かつ最も輝かしいものよりも安定性(および広範なテスト)を優先します。ここにあなたの解決策があります:

ディストリビューションを変更する

Arch Linux、Sabayon Linux、Debian "Sid"などの他のディストリビューションには、最新バージョンがはるかに高速に含まれています。ディストリビューションを変更することを検討してください。

自分で作る

CentOSに悩まされている場合、最善の策はソースからgccビルドすることです。これは、ソースコードを取得し、依存関係がシステムに既に存在することを確認し(そうでない場合は、CentOSパッケージマネージャーから依存関係を取得できると確信しています)、ソースをバイナリ実行可能ファイルにコンパイルし、実行可能ファイルをシステム

これは確かに最も簡単な方法ではありませんが、その過程でUnixについて多くのことを学びます。すべてを確実に理解するためにドキュメントを数回読んでください。具体的に不明な点がある場合は質問してください。

我慢して

ある時点で、このバージョン(またはそれ以降)のgcc / g ++がパッケージマネージャーに入ります。待つ場合(最大で数か月、私はCentOSのリリースサイクルに精通していません)、最終的に必要なものが得られます。


1

ああ、私はリードの答えにコメントするにはあまりにも新しいです。それは私にはうまくいきました。注意したいのは、これはReedの場合でしょうか?わずかに異なるコマンドラインでインストールする必要がありました。

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

(リードの回答には--enablerepo=testing-devtools-6がありましたが、機能しませんでした。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.