' .Call错误("添加",a,b):C符号名称"添加"不在加载表',从R

时间:2017-05-22 05:02:06

标签: c r

我正在学习如何使用" .Call()"从R调用C函数。 我正在按照here给出的例子。

我创建了一个C文件" add.c":

#include <R.h>
#include <Rinternals.h>

SEXP add(SEXP a, SEXP b) {
  SEXP result = PROTECT(allocVector(REALSXP, 1));
  REAL(result)[0] = asReal(a) + asReal(b);
  UNPROTECT(1);

  return result;
}


$ R CMD SHLIB add.c
然后我有了:

add.c               
add.o               
add.so

创建了另一个R文件&#34; Calling_Cf_from_R_wrapper.R&#34;:

# In R ----------------------------------------
add <- function(a, b) {
  .Call("add", a, b)
}
在R会话中

> source("Calling_Cf_from_R_wrapper.R")
> add(1,2)
Error in .Call("add", a, b) : C symbol name "add" not in load table

知道为什么它没有成功吗? 谢谢!

0 个答案:

没有答案