0

私のホーム ディレクトリは、ネットワーク ファイル システムを介して複数の Linux コンピューター間で共有されています。ソースからいくつかの C C++ ライブラリをホーム ディレクトリにインストールし、すべての Linux コンピュータで使用できるようにしたいと考えています。

コンピューターごとにホームの異なるディレクトリに異なるバージョンのライブラリをインストールする必要がありますか?

これらのライブラリを呼び出す C C++ プログラムがあると仮定すると、Makefile で別のコンピューターの別のインクルード ファイルとリンク ファイルとディレクトリを指定するにはどうすればよいですか? コンピューターのホスト名に基づいてディレクトリを決定することですか?

ライブラリのインクルード ファイルとリンク ファイルおよびディレクトリがすべてのコンピュータで同じになるように、異なる Linux コンピュータのライブラリの .a および .so ファイルとヘッダー ファイルの異なるバージョンを組み合わせることは可能ですか? C C++ プログラムの Makefile で別のコンピュータに別のディレクトリを指定する必要がありますか?

よろしくお願いします!

4

1 に答える 1

0

これは簡単で一般的です。

C C ++とは、Cコンパイラでコンパイルされたライブラリと、C++コンパイラでコンパイルされたライブラリがあることを意味します。

使用しているコンパイラのバージョンが同じである場合、バージョンごとに異なるライブラリは必要ありません。それらが異なる場合でも、同じCライブラリを使用できる可能性がありますが、C++の方が問題が大きくなります。

ファイルがホームディレクトリにある場合、Makefileで行う最も簡単な方法は、すべてのパスを$HOMEを基準にして作成することです。この環境変数は、各システムで正しく設定する必要があります。

異なるマシン上の異なるライブラリを参照する必要がある場合、最も簡単な方法は、ホスト名と同じ名前のディレクトリにそれらを配置することです。このようなもの:

CXXFLAGS=-I$(HOME)/app/$(HOST)/include

gccのバージョン番号を抽出してそれを使用することで、もっと凝ったことをすることができますが、おそらく2、3台のマシンではやり過ぎでしょう。

于 2009-08-14T12:39:27.557 に答える