2009-08-14 14 views
0

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

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

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

異なるLinuxコンピュータ用のlibaryの.aファイルと.soファイルとヘッダーファイルの異なるバージョンを組み合わせて、libaryのインクルードファイルとリンクファイルとディレクトリがすべてのコンピュータと私は私のC C++プログラムのMakefileに異なるコンピュータの異なるディレクトリを指定する必要はありませんか?

ありがとうございました!

答えて

0

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

C C++私はあなたがCコンパイラでコンパイルされたライブラリと、C++コンパイラでコンパイルされたライブラリを持っていると思います。

使用しているコンパイラのバージョンが同じ場合は、各バージョンごとに異なるライブラリは必要ありません。もしそれらが異なっていれば、同じCライブラリを使うことはまだ可能かもしれませんが、C++はもっと問題になります。

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

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

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

あなたはマシンだけのカップルのためのgccのバージョン番号を抽出して、それを使用することにより、より凝ったが、そのおそらく行き過ぎ何かを行うことができます。

+0

ありがとうございました! gccのバージョンは2台のマシンで異なります。最初のものは、gcc/g ++ 3.4.6 20060404(Red Hat 3.4.6-10)です。 2番目はgcc/g ++(Ubuntu 4.3.2-1ubuntu12)です。4.3.2。 最初のマシンはCentOSリリース4.7(最終版)とx86_64で、もう1台目はUbuntu 8.10とx86_64です。 ライブラリを別のディレクトリにインストールする必要がある場合は、Makefileの異なるマシンにライブラリを指定する方法はありますか? ありがとう – Tim

関連する問題