クラスの C および C++ ファイルを採点していますが、この課題では GSL ライブラリを使用しています。私のコンピュータには root 権限がないので、私の GSL ライブラリはホーム ディレクトリにインストールされています。
これは、自分でプログラムを作成する場合には問題になりません。適切な -L フラグと -I フラグを gcc に追加するだけだからです。
しかし、学生のファイルをコンパイルするとき、すべてのメイクファイルを編集したくありません。代わりに、適切なディレクトリを環境変数に入れて、シームレスに実行したいと考えています。
この目的のために、次の変数をライブラリまたはインクルードの場所と共にエクスポートしました: C_INCLUDE_PATH、CPLUS_INCLUDE_PATH、LIBRARY_PATH、および LD_LIBRARY_PATH
しかし、学生のプロジェクトをコンパイルすると、
gcc -Wall -o MC_thread MC_thread.c -lgsl -lgslcblas -lpthread -lm
次のエラーが表示されます。
/usr/bin/ld: cannot find -lgsl
collect2: ld returned 1 exit status
make: *** [all] Error 1
gcc v 4.1.2 を使用しています。gcc v 4.4 を使用している場合、実際にはエラーは発生しませんが、その理由はわかりません。私のリンカーは次のとおりです。
ld -V
GNU ld version 2.17.50.0.6-12.el5 20061020.