Я пытаюсь отправить пакет в CRAN, который не работает во время предварительного тестирования в Debian.
Я использую код C ++, который взаимодействует с библиотекой оптимизации nlopt с помощью Rcpp / RcppArmadillo (с использованием <nlopt.hpp>
). Таким образом, моему пакету требуется системная версия nlopt, которую можно установить через deb-пакет libnlopt-dev (я добавил это в поле SystemRequirements).
Я использую сценарий конфигурации и pkg-config для получения (надеюсь) соответствующих флагов компилятора, которые затем отправляю в src / Makevars.
NLOPT_LIBS=`pkg-config --libs ${PKG_CONFIG_NAME}`
NLOPT_FLAG=`pkg-config --cflags ${PKG_CONFIG_NAME}`
Этот подход работает в моей системе (Ubuntu 18.04, R 3.5.2) и в Travis (Linux и Mac OS), но не работает на сервере Debian CRAN: https://win-builder.r-project.org/incoming_pretest/PLNmodels_0.7_20190119_161032/Debian/00install.
Я добавил немного подробностей, чтобы проверить, что флаги были правильно экспортированы на серверы CRAN, и мне они кажутся подходящими: по крайней мере, в системе обнаружена версия nlopt (см. Ниже, NLOPT_LIBS=-lnlopt -lm
). Однако <nlopt.hpp>
не найден последним на ...
Любая помощь будет принята с благодарностью. Спасибо, что нашли время прочитать это.
* installing *source* package ‘PLNmodels’ ...
Using NLOPT_LIBS=-lnlopt -lm
Using NLOPT_FLAG=
** libs
g++-8 -std=gnu++11 -I"/home/hornik/tmp/R/include" -DNDEBUG -fopenmp
-I"/home/hornik/lib/R/Library/3.6/x86_64-linux-gnu/Rcpp/include"
-I"/home/hornik/lib/R/Library/3.6/x86_64-linux-gnu/RcppArmadillo/include"
-I/usr/local/include -fopenmp -fpic -g -O2 -Wall -pedantic
-mtune=native -c RcppExports.cpp -o RcppExports.o
g++-8 -std=gnu++11 -I"/home/hornik/tmp/R/include" -DNDEBUG -fopenmp
-I"/home/hornik/lib/R/Library/3.6/x86_64-linux-gnu/Rcpp/include"
-I"/home/hornik/lib/R/Library/3.6/x86_64-linux-gnu/RcppArmadillo/include"
-I/usr/local/include -fopenmp -fpic -g -O2 -Wall -pedantic
-mtune=native -c call_nlopt_PLN_VE.cpp -o call_nlopt_PLN_VE.o
In file included from call_nlopt_PLN_VE.cpp:6:
utils.h:5:10: fatal error: nlopt.hpp: No such file or directory
#include <nlopt.hpp>
^~~~~~~~~~~
compilation terminated.
make: *** [/home/hornik/tmp/R/etc/Makeconf:173: call_nlopt_PLN_VE.o] Error 1
ERROR: compilation failed for package ‘PLNmodels’
* removing ‘/srv/hornik/tmp/CRAN/PLNmodels.Rcheck/PLNmodels’