クラスタ上でGNU scientific library library(GSL)を必要とするコード(iHARM2D)を実行しています。 GSLライブラリはクラスタにインストールされていないので、そこでコンパイルして、実際のコードのコンパイル時に適切にリンクする必要があります。私のシェルスクリプトでは、私はこれがGSLをコンパイルし、/ homefolder/iHARM/GSLcompiled/libに結果を置くクラスタ上のGNU科学ライブラリにリンクしていますか?
cd whereGSLsource
./configure --prefix=/homefolder/iHARM/GSLcompiled
make && make install
書き込み、/ homefolder/iHARM/GSLcompiled /含めるなどthis answerによると
、Iコンパイルが `にタイプ「未定義の参照のエラーを返すので、私のメインのコード
export CPATH="/homefolder/iHARM/GSLcompiled/include":$CPATH
export LIBRARY_PATH="/homefolder/iHARM/GSLcompiled/lib":$LIBRARY_PATH
のコンパイルの前に私のシェルスクリプトに以下の行を記述することでコンパイルすることができるはずですが、これは正しくGSLをリンクしていないようですgsl_some_fun ction '" (GSLのデフォルトのインストールおよびリンクを使用しているとき、それは私のコンピュータ上で動作します。)
コンパイルまたはthis answer中にGSL出力によって提案された別の可能性は、LD_LIBRARY_PATH変数
LD_LIBRARY_PATH="/homefolder/iHARM/GSLcompiled/lib":$LD_LIBRARY_PATH
を変更することである。しかし、これは同じになります結果。私はしかし
gcc -someoptions -Wl,-rpath -Wl,"/homefolder/iHARM/GSLcompiled/lib" ./some.o -o harm
、これらの作業のどちらを使用するGSLによって提案されたもう一つの選択肢だった-Lと-Iオプション
cd iHARM
gcc -someoptions -I../GSLcompiled/include/ -L../GSLcompiled/lib ./some.o -o harm
を使用してリンクしようとすると、同様にそれはしていません。
GSLを正しくリンクするにはどうすればよいですか?
(私は非常にこれで経験しておりませんので、これはまた、構文またはそうではいくつかの本当に基本的な間違いかもしれません。)
あなたの '--prefix'設定はあまりにも特殊すぎるでしょう。 https://stackoverflow.com/a/16363784/841108 –