2

システム管理者が、/some/path私がソフトウェア (オープン ソース、サードパーティ ツール、私自身のプログラムなどを含むすべての種類のソフトウェア) をビルドするマシンで利用可能な gcc コンパイラの新しいバージョンを提供するとします。

私は通常、次の 3 つの環境変数$PATH$LD_LIBRARY_PATHおよび を更新します。これは、一般的な構築ツール ( 、など) またはスクリプト$MANPATHとのインターフェイスの標準的な方法であると理解しています。autoconfcmake

setenv MY_GCC /some/path

setenv PATH $MY_GCC/bin:$PATH
setenv LD_LIBRARY_PATH $MY_GCC/lib64:$LD_LIBRARY_PATH
setenv MANPATH $MY_GCC/share/man:$MANPATH

ここで簡単な質問があります: 更新する理由は本当にありますLD_LIBRARY_PATHか (プログラムがコンパイラに対してリンクするのはなぜですか?)。

しかし、より一般的には、適切なビルド環境を保証するために、新しいコンパイラのインストール時にどの環境変数を更新する必要がありますか?

4

1 に答える 1

1

場合によります。

通常、適切なビルド環境を用意する以外PATHに、環境変数を設定する必要はありません (IDE を使用している場合は、コンパイラの場所を IDE に伝える必要があるかもしれませんが、必要ではないかもしれません)。予想外の非標準的な場所に住んでいます)。

のようなものautoconf(または CMAKE、または類似のもの) を使用する場合、特にシステムに複数のコンパイラ バージョン (またはクロス コンパイラ) がある場合は、念のために、CCまたはのような変数を適切なデフォルトに設定することをお勧めします (およびCXX他のものが必要な場合は、それに応じて変更してください)。
ただし、コンパイラの名前にターゲットが追加されている場合 (ほとんどのビルドのように)、これはおそらく必要ありません。少なくとも、特別なことをしなくても、私にとっては完璧に機能します。

英語が母国語ではなく、GCC がロケール サポート付きで構築されている場合 (私に言わせれば、これまでで最もばかげた考えです)、LC_ALL"C" に設定することをお勧めします。そうしないと、フォーラムでコンパイラの問題を尋ねても、「読めない」エラー メッセージが役に立たないことに気付くでしょう。

通常のハードディスクに加えて ramdisk (または SSD) を持っていて、プロジェクトが通常のハードディスク上にある場合は、TMPDIR(常に でコンパイルする場合でも)設定する必要があるかもしれませ-pipeん。理解できない)。

使用したいライブラリの場所が標準的でない場合は、 を設定できLIBRARY_PATHますが、お勧めしません。configureこれらの場所がコマンドラインでリンカーに与えられる (または のようなもので渡される) ように、ビルド スクリプト (または IDE のプロジェクト設定) を用意することをお勧めし--with-foo-path=...ます。これにより、他の誰かが未知のあいまいな環境変数で魔法のダンスを実行する必要なく、どこでもどこでもプロジェクトが構築されることが保証されます。についても同様ですC_INCLUDE_PATH

于 2013-03-13T11:07:40.343 に答える