ディストリビューションをアップグレードせずにGCCを親バージョンに自動更新

ディストリビューションをアップグレードせずにGCCを親バージョンに自動更新

私が理解したのは、G ++ 4.7.2のC ++ 11サポートがあまり良くないということです(C ++コードをコンパイルしようとするたびに警告が表示されます。おそらくこれらの警告にはその理由があります)。新しいものを更新してみてください。

ダウンロードクォータが多くないためダウンロードを制限したいので、必ずしもbuild-essentials必要でない限り、Debian stable(Wheezy)にアップグレードしたりアップグレードしたくありません。

apt-get適性リポジトリに奇妙なことをせずに最新のGCCバージョン(またはC++ 11全体をサポートするすべてのバージョン)を使用できる簡単なコマンドはありますか?

私はまだLinux全体のインストールプロセスを理解しようとしているので、既存のインストールを上書きする実行可能なコマンド形式で答えを聞きたいです。

ベストアンサー1

パッケージ管理は「一緒に属する」パッケージセットを提供します。ディストリビューションに含まれていない新しいソフトウェアセットをインストールしようとする試みは、「うまく機能しない」ことがあります。一般的に起こるのは、アップグレードする必要がある後続のパッケージの巨大なデイジーチェーンを取得することです。 「」など)。

既存のツールを維持することがより良いソリューションであることがわかり、独自のgcc、llvm + clang、gdb、lldb、またはより高いバージョンが必要と思われるすべてのツールを構築することがより良いソリューションであることがわかりました。通常、これは /usr/local/{bin,lib,include,...} にインストールされ、 distro ツールは /usr/{bin,lib,include,..} にインストールされるため、問題なく動作します。 in - したがって、以前のバージョンを使用する必要がある場合(このような場合が発生します。たとえば、最新のgccがありますが、残念ながらプロジェクトAまたはそれ自体をコンパイルできません) - /usr/bin/ gccを使用できます。 /usr/local を使用しないように $PATH を編集してください。

Fedora-16がインストールされていますが、gcc 4.8.2(3月末の最新バージョン)とclang 3.5を使用しています。システムに付属するデフォルトのコンパイラは gcc 4.6.3 と clang 2.9 です。 Clang 3.5にはC ++ 11準拠のコンパイラが必要なので、このプロジェクトには4.7または4.8が必要です。それは非常にうまく動作します。 (しかし、新しいgccとclangは古いgdbを壊してシンボルが期待どおりに機能しなかったので、gdbを再構築またはアップグレードする必要がありました。)

おすすめ記事