带C代码的R包,包dll中没有“此类符号”

问题描述

我正在编写一个R包,并开始在其中包含C代码。按照here的说明,在“ .C()入门”下,我在src /中创建了一个c函数,并通过roxygen标记@useDynLib(<package-name>,<name_of_c_function>)对其进行了r包装。

但是,运行devtools::document()后,出现以下错误:

Error in FUN(X[[i]],...) :
  no such symbol <name_of_c_function> in package C:/path/to/package/src/<package-name>.dll

我了解到更新R和Rtools已解决了某些问题。昨天我都更新了它们,但无济于事。

任何帮助将不胜感激。

(这类似于this question中的问题,目前尚无答案。)

(除了我使用devtools :: document()代替该问题中的R CMD之外,它还可能与this question有关。)


相关代码:

# R file
#' @useDynLib <package-name> <name_of_c_function>
#' @export
name_of_func <- function(y) {
  stopifnot(is.numeric(y))
  .C(name_of_c_function,y,length(y),1) [[2]]
}
// C file
<#include stdlib.h>
static void name_of_c_function(double* y,double* x,const unsigned int length,const double a) {...}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)