GSL安装在cygwin,windows 10上的哪里?

时间:2017-04-09 18:41:02

标签: cygwin gsl

我想在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包:

enter image description here

我在一个小测试.cpp文件中跟随下面的链接。 Using GSL with cygwin g++

请帮我解决Windows 10中的gsl库设置问题。

谢谢,

2 个答案:

答案 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安装程序重新安装gsllibgsl-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