只能找到 rcpp.dll , 找不到 对应的lib 和头文件,

能在纯C++ 的工程中使用Rcpp吗?

目的是:为了最后和R粘合,!

源码在Github仓库就有啊,CRAN上也能找到源码啊。纯C++项目不建议使用Rcpp,因为这个Rcpp的目的是实现R和C++的整合,如果你是个纯C++项目为什么要带上Rcpp呢。

简单的小项目完全可以纯C++写完之后,整合进R包里,此时引入Rcpp,做一些类型转换即可。

复杂的项目可以考虑做一个RcppXXX型的包,核心是实现如下的两个模板函数以实现R的数据和你的C++项目中定义的类型的数据转换。可以参考现在茫茫多的RcppXXX包,例如RcppArmadillo, RcppEigen, RcppGSL, ... 入门的文档可以参考Rcpp 自带的一份Vignette作为起点。

// conversion from R to C++
template <typename T> T as(SEXP x);
// conversion from C++ to R
template <typename T> SEXP wrap(const T& object);

    fenguoerbian CRAN上也能找到源码啊。纯C++项

    我现在有一份R和C++混合的工程代码,在做分开调试,通过文本传递数据。

    但是C++的部分在返回给R的数据之前,有一部分是用Rcpp进行处理的,所以想在C++中能调用Rcpp的库。

    fenguoerbian

    不行啊!

    Frequently Asked Questions about Rcpp
    Dirk Eddelbuettel Romain François
    Rcpp version 0.12.10 as of March 17, 2017

    2.9 Can I use Rcpp with Visual Studio ?
    Not a chance.
    And that is not because we are meanies but because R and Visual Studio simply do not get along. As Rcpp is all about
    extending R with C++ interfaces, we are bound by the available toolchain. And R simply does not compile with Visual
    Studio. Go complain to its vendor if you are still upset.

      iElectroSmith 你仔细看一下你引用的这个句子,这是指的编译时工具链的限制,在windows平台要编译R相关的源码需要使用特定的编译工具,不想操心的话就用rtools里的工具链去做。这是R源码和平台的限制,在windows系统上的vs系列编译器得到的结果用不了。

        fenguoerbian

        我不用在vs中编译R啊, 我只要 rcpp的 dll+lib 库,把它当做一个普通的 C++库,能用在 单独的 vs C++ 工程中就行。

          iElectroSmith

          那你前面说的“不行啊”应该不会构成问题。但是如果这个纯C++的项目还在开发的话,我个人不建议现在就引入Rcpp进入这个项目,因为这个只是纯粹为了R和C++之间的数据传递,不如等C++的部分都稳定之后再开始做RcppXXX式的R包来引入这个C++项目。

          这样开发调试的任务可以被分块来做,而且也有很多现成的RcppXXX式的例子可以参考。

          当然如果一定要在C++部分的开发中就引入Rcpp的话,如果我没记错,Rcpp本身C++侧是header only的,所以应该不会需要dll?