1. ホーム
  2. linux

[解決済み] UbuntuのデフォルトのGCCコンパイラを変更する方法は?

2022-11-17 10:18:52

質問

私は gcc-3.3/g++-3.3 を ubuntu 11.04 にインストールしましたが、すでに gcc/g++-4.4 がインストールされています。したがって、私のシステムでgcc-3.3と4.4の両方が利用可能です。私は両方のコンパイラを好きなように呼び出すことができます。もし私が単にコマンド gcc を呼び出せば、gcc-4.4が呼び出されます。gcc-3.3を呼び出すには、私はコマンド gcc-3.3 .

デフォルトのコンパイラをgcc-3.3に変更するにはどうしたらよいですか?コマンドを実行すると gcc を実行すると、gcc-4.4ではなくgcc-3.3が呼び出されるはずです。

さらに、make ファイル内の変数 CXX を gcc-3.3 に変更するにはどうしたらよいでしょうか。すべての make ファイルを変更するのではなく、システム内の 1 つの共通のグローバルな場所を変更したいのです。

どのように解決するのですか?

Tommy が提案したように update-alternatives .

ファミリーのすべてのソフトウェアに値を割り当てるので、アプリケーションが呼び出される順序が定義されます。

これは、システム上で同じソフトウェアの異なるバージョンを維持するために使用されます。あなたの場合、いくつかのデクリネーションで gcc を使用することができ、1つが優先されます。

gcc の現在の優先順位を知るには、@tripleee さんのコメントで指摘されているコマンドを入力します。

update-alternatives --query gcc

では、優先順位が gcc-4.4 にはより高い優先度を与える必要があるからです。 gcc-3.3 .

選択肢を設定するには、次のようなものを用意します。 (あなたの gcc にインストールされていると仮定します。 /usr/bin/gcc-3.3 に、そして gcc-4.4 の優先度は50未満) :

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.3 50

--edit--。

最後に、対話的なインターフェイスである update-alternatives を使って簡単にバージョンを切り替えることができます。タイプ update-alternatives --config gcc と入力すると、インストールされているものの中から使いたいgccのバージョンを選ぶように指示されます。

--edit 2 --.

さて、CXX環境変数をシステム全体で修正するためには、@DipSwitchの示す行をあなたの .bashrc ファイルに記述する必要があります (これは自分のユーザーに対してのみ変更を適用するため、私見ではより安全です)。

echo 'export CXX=/usr/bin/gcc-3.3' >> ~/.bashrc