c/c++语言开发共享使用Visual Studio构建R包(C API)

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

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

我安装了R运行时和RTools。

当我尝试编译它时,我收到以下链接错误:

 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) 

好吧,我想我错过了链接过程所需的一些二进制文件。 问题是我不知道在哪里可以找到必要的.lib文件。 在R运行时安装文件夹中,我可以找到include目录,但是我找不到任何lib目录。 我错过了什么?

谢谢!

    请允许我引用Rcpp FAQ小插图:

    我可以在Visual Studio中使用Rcpp吗?

    不是机会。

    这不是因为我们是公司,而是因为R和Visual Studio根本不相处。 由于Rcpp是用C++接口扩展R ,我们受可用工具链的约束。 R只是不能用Visual Studio编译。 如果您仍然不满,请向其供应商投诉。

    微软或多或少不顾一切地确保其操作系统和工具不符合POSIX标准。 随着R在Unix / POSIX世界中成长,只是存在一个你无法弥合的差距(很容易)。

    所以在Windows上它是gcc的MinGW端口。

      以上就是c/c++开发分享使用Visual Studio构建R包(C API)相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/544678.html

      (0)
      上一篇 2021年1月9日
      下一篇 2021年1月9日

      精彩推荐