我正在尝试向CRAN提交一个在预测试期间失败的软件包
Debian上的过程.
Debian上的过程.
我使用了一些与nlopt优化接口的C代码
使用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.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’
解决方法
nlopt的C接口已经迁移到Debian的一个单独的包中,c.f.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855600.所以看起来特定的CRAN机器使用Debian Testing或Stable Backports并且只安装了libnlopt-dev但没有安装libnlopt-cxx-dev.您必须联系CRAN维护者才能安装此依赖项.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。