28

新しい C++11 機能のいくつかを試してみたいと思っています。これに対する最適なサポートは gcc 4.8 であり、Squeeze は 4.4.5 で出荷されているようです。

ただし、現在のセットアップに「ダメージ」を与えたくありません。両方のバージョンの gcc を並行して実行する最良の方法は何ですか? 私は主に多数の依存関係を懸念しており、それらをすべて現在のシステムに取り込むと、システムが不安定になる可能性があります。

誰かがこれを行うことができましたか?また、関連する手順は何ですか?

それができない場合は、おそらく VM を作成し、その下で「不安定な」Debian を実行するだけですが、これは理想的なソリューションとは言えません。

4

5 に答える 5

34

ソースから GCC をインストールする場合は、インストールしないように注意してください/usr。ではなく、自分のユーザーとしてインストールするとroot、システムが台無しになる可能性はゼロです。

ほぼ無防備な最小構成については、 http: //gcc.gnu.org/wiki/InstallingGCCを参照してください。

ユーザーとしてビルドされたさまざまなバージョンがあり~/gcc/4.X、さまざまな Xにインストールされています。

その設定を使用する際に注意すべき唯一のことは、新しいバージョンの共有ライブラリがダイナミック リンカーのデフォルトの検索パスにないことです。そのためLD_LIBRARY_PATH、実行可能ファイルが 4.8 からのライブラリを確実に見つけられるようにするために、またはその他のソリューションを使用する必要があります。libstdc++ FAQマニュアル内のリンク先ページ

g++11新しいバージョンの GCC を呼び出すだけのラッパー スクリプト呼び出しを使用-std=gnu++11し、リンカーにフラグを渡し、実行可能ファイルに 4.8 ライブラリへのパスを設定するように指示します。

$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "$@"
于 2013-05-01T07:49:54.707 に答える
16

私は同じ問題を抱えていたので、完全にテスト版にアップグレードしたくありませんでした。

Jessie (テスト中) には、C++11 に準拠した g++-4.8 が含まれるようになりました。

次の方法で apt-pinning を使用しました。

jessie のソースが /etc/apt/sources.list に追加されました。

deb http://ftp.uk.debian.org/debian/ jessie main non-free contrib

/etc/apt/preferences は次のように編集されました。

Package: *
Pin: release n=wheezy
Pin-Priority: 900

Package: gcc*
Pin: release n=jessie
Pin-Priority: 910

それで、

$ sudo aptitude update
$ sudo aptitude install gcc/jessie

その時点で、依存関係を完全に解決するために、2 番目に提示されたオプションを選択しました。

于 2014-10-02T18:22:13.983 に答える
6

Debian には gcc-4.8 (または c++ コンパイラの場合は g++-4.8) という名前のパッケージがあります。これらのパッケージをインストールしても、名前を g++ に変更しない限り、OS が台無しになることはありません。ただし、パッケージは実験的なものとしてリストされています。
パッケージの情報はこちら.

更新: g++-4.8 は現在テスト中ですが、更新されたパッケージは不安定です

于 2013-05-01T01:52:44.643 に答える
2

簡単なもの:

  1. テストにアップグレードするだけで、堅牢で、複数の同時 gcc バージョンを提供します。Ubuntu と同様に、12.10 では gcc/g++ 4.4、4.5、4.6、および 4.7 を並行して使用しています。

  2. Debian バックポート アーカイブを試してみてください。gcc 4.8 のポートが含まれている可能性があります。

  3. 仮想化の使用: カーネルベースであるため、Linux で信じられないほど軽量な libvirt / kvm を好みます。私のamd64サーバーには、まさにその理由で、他に2つの32ビットがインストールされています。

  4. 本当にSOの質問ではありません...

于 2013-05-01T01:52:15.463 に答える
1

新しい Debian フレーバーをインストールするためにchrootを試しましたか?

  • 作業中のシステムを壊す心配なく、いじくり回すことができます。

  • 必要な gcc バージョンをサポートする Debian フレーバーをインストールします。

  • 作業中のシステムに影響を与えずに gcc バージョンを手動でインストールします。 http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot

于 2013-05-01T04:24:13.450 に答える