我想在Windows 10上使用GSL。在cygwin中安装GSL软件包之后,我找不到cygwin下的install gsl文件夹。错误是这样的:
$ g ++ bessel.cpp -lm -lgsl -o bessel.out -L / usr / bin bessel.cpp:1:32:致命错误:gsl / gsl_sf_bessel.h:没有这样的文件或目录 编译终止。
虽然我确实看到安装了GSL包:
我在一个小测试.cpp文件中跟随下面的链接。 Using GSL with cygwin g++
请帮我解决Windows 10中的gsl库设置问题。
谢谢,
答案 0 :(得分:1)
知道文件的位置以及软件包的安装方式 检查包装中是否含有" gsl"在名称
$ cygcheck -cd |grep gsl
gsl 2.3-2
gsl-apps 2.3-2
gsl-devel 2.3-2
gsl-doc 2.3-2
libgsl-devel 2.3-2
libgsl0 1.16-2
libgsl19 2.3-2
用于编译的头文件和导入库位于开发包中 我们检查包装状态:
$ cygcheck -c libgsl-devel
Cygwin Package Information
Package Version Status
libgsl-devel 2.3-2 OK
因此,软件包已安装correclti,并且没有文件丢失。 列出包内容
$ cygcheck -l libgsl-devel
/usr/bin/gsl-config
/usr/include/gsl/gsl_blas.h
/usr/include/gsl/gsl_blas_types.h
/usr/include/gsl/gsl_block.h
/usr/include/gsl/gsl_block_char.h
/usr/include/gsl/gsl_block_complex_double.h
/usr/include/gsl/gsl_block_complex_float.h
/usr/include/gsl/gsl_block_complex_long_double.h
/usr/include/gsl/gsl_block_double.h
/usr/include/gsl/gsl_block_float.h
/usr/include/gsl/gsl_block_int.h
[cut]
/usr/include/gsl/gsl_wavelet2d.h
/usr/lib/libgsl.dll.a
/usr/lib/libgslcblas.dll.a
/usr/lib/pkgconfig/gsl.pc
/usr/share/aclocal/gsl.m4
/usr/share/info/gsl-ref.info-1.gz
/usr/share/info/gsl-ref.info-2.gz
/usr/share/info/gsl-ref.info-3.gz
/usr/share/info/gsl-ref.info-4.gz
/usr/share/info/gsl-ref.info-5.gz
/usr/share/info/gsl-ref.info-6.gz
/usr/share/info/gsl-ref.info.gz
/usr/share/man/man1/gsl-config.1.gz
/usr/share/man/man3/gsl.3.gz
答案 1 :(得分:0)
如果Cygwin的安装目录是C:\cygwin64
,那么您在上面引用的头文件位于以下位置:
C:\cygwin64\usr\include\gsl\gsl_sf_bessel.h
如果您没有在那里看到它,则可能需要从Cygwin安装程序重新安装gsl
和libgsl-devel
软件包。只要您将stdio.h
头文件添加到源代码中,Using GSL with cygwin g++页面上提供的代码就可以正常编译,如该页面上的答案所示:
#include <gsl/gsl_sf_bessel.h>
#include <stdio.h>
int main (void)
{
double x = 5.0;
double y = gsl_sf_bessel_J0 (x);
printf ("J0(%g) = %.18e\n", x, y);
return 0;
}
假设此文件为bessel.cpp
,则应使用以下命令编译:
g++ bessel.cpp -lgsl