包检查中的RcppArmadillo sample.h错误

时间:2016-10-25 10:26:48

标签: r rcpp armadillo

我用RcppArmadillo写了一个R包。在我的源文件中,我有

#include <RcppArmadilloExtensions/sample.h>

在第一行,以便使用函数示例。 该软件包在我的Windows机器上编译和检查,并提交给CRAN。但它没有检查风味:r-patched-solaris-sparc,r-patched-solaris-x86有安装错误。

日志文件显示

  

在sim12.cpp中包含的文件中:1:0:   /home/R/Lib32/RcppArmadillo/include/RcppArmadilloExtensions/sample.h:在函数'void Rcpp :: RcppArmadillo :: ProbSampleReplace(arma :: uvec&amp;,int,int,arma :: vec&amp;)'中:   /home/R/Lib32/RcppArmadillo/include/RcppArmadilloExtensions/sample.h:149:55:警告:'const arma :: mtOp arma :: sort_index(const arma :: Base&amp;,arma :: uword)[with T1 = ARMA ::垫; typename T1 :: elem_type = double; arma :: uword = unsigned int]'已弃用[-Wdeprecated-declarations]                arma :: uvec perm = arma :: sort_index(prob,1); //降序索引                                                          ^   在/ home / R / Lib32 / RcppArmadillo / include / armadillo中包含的文件中:449:0,                    来自/home/R/Lib32/RcppArmadillo/include/RcppArmadilloForward.h:46,                    来自/home/R/Lib32/RcppArmadillo/include/RcppArmadillo.h:31,                    来自/home/R/Lib32/RcppArmadillo/include/RcppArmadilloExtensions/fixprob.h:25,                    来自/home/R/Lib32/RcppArmadillo/include/RcppArmadilloExtensions/sample.h:30,                    来自sim12.cpp:1:   /home/R/Lib32/RcppArmadillo/include/armadillo_bits/fn_sort_index.hpp:37:1:注意:在此声明    sort_index    ^

和类似的警告。

为了找到解决这个问题的方法,我用Google搜索了一些错误信息并找到了这个页面(c-style和arma api change compile warning#203):

https://github.com/SMAC-Group/gmwm/issues/203

我认为安装错误不是由于第一行后面的代码中的任何特定行

#include <RcppArmadilloExtensions/sample.h>

但我不确定如何解决这个问题。我非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

嗯,当你自己的一个GitHub问题出现在SO上时,总是很有趣...

首先,这并不是一个错误,只是警告它需要尽快处理并且需要在上游完成。

基本上,RcppArmadilloExtensions/sample.h API必须更新,因为Armadillo的sort( X , sort_direction )sort_index( X , sort_direction)函数已经不再使用整数指定sort_direction参数(例如{ {1}} = ascend,0 = descend)支持字符串接口(例如1"ascend")。

"descend"

有了这个说法,我发出PR请求并进行必要的更改 Dirk将make an issue然后submit a PR that fixes it。如果您想获得最新的测试,请获取最新的开发版本。可能,这将在大约一个月内滚动到CRAN。