我正在尝试向 CRAN 提交一个在 Debian 的预测试过程中失败的包。
我使用了一些 C++ 代码,这些代码通过 Rcpp/RcppArmadillo(使用<nlopt.hpp>
)连接到 nlopt 优化库。因此,我的包需要一个系统版本的 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.out
我添加了一些详细信息来检查标志是否在 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’