我正在使用gsl和Cygwin,并开始我正在尝试编译一个非常简单的程序(我将稍后从Fortran程序中调用)。由于定位gsl文件的问题,我无法编译它。该代码是:让Gnu科学图书馆在Cygwin工作
#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
...
所以,问题似乎是库文件的路径。但尽可能地尝试,我似乎无法正确设置。我用GSL-配置作为Using GSL with cygwin g++建议,这让我
-L/usr/include
,所以我试图用作为一个选项,但我得到了相同的结果编制。我也尝试将LD_LIBRARY_PATH设置为/ usr/lib,/ usr/include,C:/ cygwin/usr/include和其他几种组合,但没有任何效果。
我不知道还有什么可以尝试的。任何人都可以看到我失踪的东西吗? (其他信息:我已经安装了gsl-devel,至少我要求Cygwin Installer安装它,并且我可以在许多其他文件中找到包含gsl_math.h的文件夹/ usr/include/gsl。不知道我还有什么需要做的。)
你使用什么编译器?如果你使用MinGW,它不会知道如何解释Cygwin风格的路径。 –
这可能解释它。我今天只安装了Cygwin,但已经有了MinGW。重新启动Cygwin后,事情似乎正在起作用。我检查了'gcc -v',目标是'i686-pc-cygwin'。 (当我在Windows命令行中检查它时,它是'i686-w64-mingw')感谢您的解释! –