1

私は gsl と Cygwin を使用しています。開始するために、非常に単純なプログラムをコンパイルしようとしています (後で Fortran プログラムから呼び出します)。gsl ファイルの検索に問題があるため、コンパイルできません。コードは次のとおりです。

#include <gsl/gsl_math.h>

void gslgateway_(double *x, double *res){
   *res = gsl_atanh(*x);
}

私がそれをコンパイルしようとすると:

gcc -c gslgateway.c

次のエラーが表示されます。

gslgateway.c:1:26: error: gsl/gsl_math.h: No such file or directory

最初の行を次のように変更すると

#include <C:/cygwin/usr/include/gsl/gsl_math.h>

次に gsl_math.h が見つかりましたが、他の多くのファイルは見つかりませんでした:

In file included from gslgateway.c:1:
C:/cygwin/usr/include/gsl/gsl_math.h:23:25: error: gsl/gsl_sys.h: No such file or directory
...

したがって、問題はライブラリ ファイルへのパスにあるようです。しかし、できる限り試してみてください。これを正しく設定できないようです。Using GSL with cygwin g++ で提案されているように gsl-config を 使用しました。

-L/usr/include

それをオプションとしてコンパイルしてみましたが、同じ結果が得られました。また、LD_LIBRARY_PATH を /usr/lib、/usr/include、C:/cygwin/usr/include、および他のいくつかの組み合わせに設定しようとしましたが、何も機能しません。

今、他に何を試すべきかわかりません。誰かが私が見逃しているものを見ることができますか?

(その他の情報: gsl-devel をインストールしました。少なくとも、Cygwin インストーラーにインストールを依頼しました。他の多くのファイルの中に gsl_math.h を含むフォルダー /usr/include/gsl を見つけることができます。わかりません私がそこでしなければならないことが他にあれば。)

4

1 に答える 1

1

私の推測は正しかったようですので、回答として投稿します。

MinGW コンパイラを使用しているようです。MinGW は Cygwin の一部ではないため、Cygwin スタイルのパスを認識しません。そのため、コンパイラは を見つけることができましたが、できC:/cygwin/usr/include/ませんでし/usr/includeた。

于 2011-09-06T17:32:21.560 に答える