我用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>
但我不确定如何解决这个问题。我非常感谢任何建议。
答案 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。