【问题标题】:R package build failing on Windows machines (AppVeyor) due to missing GSL - GNU Scientific Library由于缺少 GSL,R 包构建在 Windows 机器(AppVeyor)上失败 - GNU 科学图书馆
【发布时间】:2021-09-15 16:41:45
【问题描述】:

我正在开发一个名为 DescObs (https://github.com/MaaniBeigy/DescObs) 的 R 包。它从MBESS 导入conf.limits.nct 函数,该函数本身依赖于另一个名为gsl 的包。对于R CMD check 和在Travis 持续集成平台(https://travis-ci.org/MaaniBeigy/DescObs) 评估的Linux 机器上安装DescObs,它完全没有问题。不过,AppVeyorfails

** libs
*** arch - i386
C:/Rtools/mingw_32/bin/gcc  -I"c:/R/include" -DNDEBUG -I/include         -O3 -Wall  -std=gnu99 -mtune=generic -c airy.c -o airy.o
airy.c:1:29: fatal error: gsl/gsl_sf_airy.h: No such file or directory
 #include <gsl/gsl_sf_airy.h>
                             ^
compilation terminated.
make: *** [c:/R/etc/i386/Makeconf:208: airy.o] Error 1
ERROR: compilation failed for package 'gsl'
* removing 'c:/RLibrary/gsl'
Error in i.p(...) : 
  (converted from warning) installation of package 'gsl' had non-zero exit status
Calls: <Anonymous> ... with_rprofile_user -> with_envvar -> force -> force -> i.p
Execution halted
Command exited with code 1

我也尝试了Building an R package that uses the GSL on Windows 中推荐的解决方案,但没有帮助。我还使用mingw-w64gcc-4.6.3 编译它,它们都显示相同的错误。
此外,我尝试通过- cmd: vcpkg install gsl:x64-windows 安装,但确实显示了同样的错误。在这里,你可以看到我的appveyor.yml
你有什么想法吗?

【问题讨论】:

    标签: r windows package gsl appveyor


    【解决方案1】:

    幸运的是,我之前的appveyor.yml 终于可以构建它了:

    install:
      - ps: Bootstrap
      - cmd: git submodule update --init --recursive
      - cmd: git clone https://github.com/CxxTest/cxxtest
      - cmd: cd c:\tools\vcpkg
      - cmd: vcpkg integrate install
      - cmd: vcpkg install gsl:x64-windows
      - cmd: vcpkg install fftw3:x64-windows
      - cmd: cd "%APPVEYOR_BUILD_FOLDER%"
    environment:
      global:
        USE_RTOOLS: true
        NOT_CRAN: true
        _R_CHECK_FORCE_SUGGESTS: true
        _R_CHECK_CRAN_INCOMING_: true
        #R_CHECK_ARGS: "--run-dontrun"
      matrix:
    
      - R_VERSION: devel
        R_ARCH: x64
        GCC_PATH: gcc-4.6.3
    

    我不知道确切的原因,但我很高兴works

    编辑:我在另一个package 中再次遇到了这个问题。 Owen McDonnellimage: previous visual studio 2015 的这一行可以解决problem。有关完整的appveyor.yml,请参阅cvcqv package

    【讨论】:

      【解决方案2】:

      我来到这个帖子是因为我在尝试更新包gsl时遇到了我认为非常相似的情况:

      • 安装源代码包'gsl' ... ** 成功解包“gsl”包并检查 MD5 和 ** 使用分阶段安装

        ****************************************************** 警告: 这个 包有一个配置脚本 可能需要手动配置********************************************* *

      ** 库 "C:/rtools40/mingw64/bin/"gcc -I"C:/PROGRA~1/R/R-4.1.1/include" -DNDEBUG -I/include -O2 -Wall -std =gnu99 -mfpmath=sse -msse2 -mstackrealign -c airy.c -o airy.o airy.c:1:10:致命错误:gsl/gsl_sf_airy.h:没有这样的文件或 目录#include ^~~~~~~~~~~~~~~~~~~ 编译终止。制作:*** [C:/PROGRA~1/R/R-4.1.1/etc/x64/Makeconf:238:airy.o] 错误 1 ​​错误: 包“gsl”编译失败

      • 删除“C:/Users/shima/OneDrive/Documents/R/win-library/4.1/gsl”
      • 恢复以前的“C:/Users/shima/OneDrive/Documents/R/win-library/4.1/gsl”警告 install.packages :安装包“gsl”有非零退出 状态

      这个帖子帮我找到了解决方案,非常感谢你,还有this discussionthis one 对于那些在Windows 使用Rtools 的人,这是我解决此问题的步骤,即无法更新RR 下的gsl 包:

      1. 开始Rtools Bash(在Windows菜单中找到appsRtools 4.0
      2. 运行 pacman -S mingw-w64-x86_64-gsl 并通过 yes (y) 确认
      3. 我认为这无关紧要,但我在更新我的Rtools 之前运行pacman -Syu 并抛出命令pacman -Sl 为我提供了2 中pacman 命令的正确包名称。

      Rstudio 中更新gsl 现在会导致清理

      • 完成(gsl)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-31
        • 2014-12-17
        • 2017-12-22
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        相关资源
        最近更新 更多