【问题标题】:Where is GSL installed on cygwin, windows 10?GSL在cygwin,windows 10上安装在哪里?
【发布时间】:2017-04-09 18:41:01
【问题描述】:

我想在 Windows 10 上使用 GSL。在 cygwin 中安装 GSL 包后,我在 cygwin 下找不到安装 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 库。

谢谢,

【问题讨论】:

    标签: cygwin gsl


    【解决方案1】:

    要知道文件在哪里以及是否安装了软件包。
    检查 wich 包的名称中是否包含“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
    

    因此该软件包已正确安装并且没有文件丢失。 列出包裹内容

    $ 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
    

    【讨论】:

      【解决方案2】:

      如果Cygwin的安装目录是C:\cygwin64,那么你上面引用的头文件位于以下位置:

      C:\cygwin64\usr\include\gsl\gsl_sf_bessel.h
      

      如果您在那里没有看到它,您可能需要从 Cygwin 安装程序重新安装 gsllibgsl-devel 软件包。 Using GSL with cygwin g++ 页面上提供的代码应该可以正常编译,只要将stdio.h 头文件添加到源代码中即可,如该页面上的答案所示:

      #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
      

      【讨论】:

      • 感谢您的快速回答。我已经检查了路径。发现C:\cygwin64\usr\include\下没有gsl文件夹。使用 cygwin64 安装 GSL 似乎有问题。如图所示,我在安装时确实检查了一些 gsl 库选项。使用 cygwin 成功安装 gsl 可能有什么问题?我的意思是,它安装了 gsl 库,它的头文件应该在你显示的文件夹中,对吧?
      • @RobertWilliam - 您是否尝试过在 Cygwin 上卸载/重新安装 gsl 软件包?我首先安装了 gsl 包(及其依赖项),但在该步骤中没有安装标头。然后我安装了 libgsl-devel 并且它们出现了。也许是安装故障?或者换个镜子试试? (那可能有点牵强……现在只是抛出想法。)如果您希望我在本地安装中为您查找其他文件,请告诉我。我在 Windows 10 上运行 64 位版本的 Cygwin。
      • 作为更一般的答案,您可能还需要注意,您可以通过搜索 cygwin.com/packages 找到任何 Cygwin 软件包的安装位置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 2016-09-04
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多