我曾经在Travis构建中使用rgdal
R包,成功地使用了一年左右,几乎没有遇到问题。
但随着最近部署的rgdal
1.4-2版本,之前通过的构建开始失败,并显示以下消息。
In file included from inverser.c:5:0:
/tmp/Rtmpysf7it/R.INSTALL748c54b7a89/rgdal/inst/include/projects.h:150:33:
error: conflicting types for ‘projUV’ typedef struct { double u, v; } projUV;
^
In file included from inverser.c:3:0: /usr/include/proj_api.h:54:37:
note: previous declaration of ‘projUV’ was here
typedef struct { double u, v; } projUV;
我不确定“旧”的proj_api.h来自何处,以及如何在Travis环境中删除它。
我的travis.yml配置如下:
language: r
dist: trusty
sudo: false
cache:
packages: yes
r_packages:
- testthat
- roxygen2
- covr
addons:
apt:
packages:
- gdal-bin
- proj-bin
- libgdal-dev
- libgdal1-dev
- libproj-dev
- libgeos-dev
- r-cran-ncdf4
- libv8-3.14-dev
- libprotobuf-dev
- protobuf-compiler
- libudunits2-dev
- libnetcdf-dev
- libjq-dev
before_install:
- sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
- sudo add-apt-repository -y ppa:opencpu/jq
- sudo apt-get --yes --force-yes update -qq
after_success:
- Rscript -e 'covr::coveralls()'
非常感谢能够提供解决此问题的任何建议。
Remotes:
降级rgdal要好得多,因为它完全是在Travis级别上进行的,不涉及调整DESCRIPTION文件。 - Jindra Lacko