我正在使用 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 安装程序安装它,我可以找到一个文件夹 /usr/include/gsl 包含 gsl_math.h 以及许多其他文件。我不知道如果还有什么我需要在那里做的。)