使用VisualStudio构建R包(C API)

使用VisualStudio构建R包(C API),c,r,visual-studio,visual-studio-2012,r-package,C,R,Visual Studio,Visual Studio 2012,R Package,我正在尝试使用Visual Studio构建一个简单的R包,下面是我的代码: #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; } 嗯,

我正在尝试使用Visual Studio构建一个简单的R包,下面是我的代码:

#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;
}
嗯,我想我缺少了一些链接过程所需的二进制文件。问题是我不知道在哪里可以找到必要的
.lib
文件。在R运行时安装文件夹中,我可以找到
include
目录,但找不到任何
lib
目录。我错过了什么


谢谢

请允许我引用这个小插曲:

我可以将
Rcpp
与Visual Studio一起使用吗?

不可能

这并不是因为我们吝啬,而是因为
R
和视觉 演播室根本相处不好。As
Rcpp
是关于扩展的
R
通过
C++
接口,我们受到可用 工具链。而且
R
根本不使用Visual Studio编译。去 如果您仍然不高兴,请向其供应商投诉

微软或多或少地尽力确保其操作系统和工具不符合POSIX标准。随着R在Unix/POSIX世界中成长,存在着一个无法(轻松)弥合的鸿沟


因此,在Windows上,gcc的MinGW端口就是这样。

我认为R的标准二进制安装没有您需要的文件。我知道*nix用户需要安装一组扩展的文件,才能获得正确的头文件。请参阅《R安装和管理手册》中的一节——基本上,您将很难使用Visual Studio,而需要使用基于MinGW的Rtools。您能试一下支持R的VS2015吗?也许有一天问题可以解决?顺便说一句,例如,
.C()
可以与VS一起使用。
error LNK2019: unresolved external symbol REAL referenced in function "struct SEXPREC * __cdecl add(struct SEXPREC *,struct SEXPREC *)" (?add@@YAPEAUSEXPREC@@PEAU1@0@Z)
error LNK2019: unresolved external symbol Rf_asReal referenced in function "struct SEXPREC * __cdecl add(struct SEXPREC *,struct SEXPREC *)" (?add@@YAPEAUSEXPREC@@PEAU1@0@Z)
error LNK2019: unresolved external symbol Rf_allocVector referenced in function "struct SEXPREC * __cdecl add(struct SEXPREC *,struct SEXPREC *)" (?add@@YAPEAUSEXPREC@@PEAU1@0@Z)
error LNK2019: unresolved external symbol Rf_protect referenced in function "struct SEXPREC * __cdecl add(struct SEXPREC *,struct SEXPREC *)" (?add@@YAPEAUSEXPREC@@PEAU1@0@Z)
error LNK2019: unresolved external symbol Rf_unprotect referenced in function "struct SEXPREC * __cdecl add(struct SEXPREC *,struct SEXPREC *)" (?add@@YAPEAUSEXPREC@@PEAU1@0@Z)