由于缺少GSL,Windows机器(AppVeyor)上的R包构建失败-GNU科学图书馆

时间:2019-03-27 22:16:30

标签: r windows package gsl appveyor

我正在开发一个名为DescObshttps://github.com/MaaniBeigy/DescObs)的R包。它从conf.limits.nct导入MBESS函数,该函数本身依赖于另一个称为gsl的程序包。对于R CMD checkDescObsTravis持续集成平台(https://travis-ci.org/MaaniBeigy/DescObs)评估的Linux机器上的安装,根本没有问题。但是,AppVeyor fails

** 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
你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

幸运的是,我以前的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很高兴。