我如何用R和RCPP编译一个dll
How do I compile a dll with R and RCPP?
我已经写了一个。cpp文件,我想把它编译成一个。dll与R和RCPP使用。(不使用内联包)。我正在使用WinXP和R 2.13.2和RCPP 0.9.7。我使用的是Rtools 2.14.
-
如何在minGW的搜索路径中包含rcp .h ?我知道我需要包含的文件在C:Program FilesRR-2.13.2libraryRcppinclude.但是,我无法将它们"添加"到"搜索路径"。
-
我累了一个临时的"hack"。我将C:Program FilesRR-2.13.2libraryRcppinclude的内容复制到minGW的include目录中。编译/链接过程从myfile.cpp到myfile。
在编译myfile.dll之前会抛出一堆错误。
我已经将C:Program FilesRR-2.13.2bini386添加到我的PATH中,并且我正在从WinXP命令提示符调用R CMB SHLIB myfile.cpp。
我该怎么做?
几点要点:
-
来自MinGW的
gcc
和g++
编译器的行为与gcc
家族的其他编译器一样。这意味着没有"添加到搜索路径":您使用-I/some/dir
开关来添加该路径和目录。类似地,-L/some/lib
将该目录添加到链接器路径中。 -
你真的想要使用
Makefile
。我们的Rcpp包附带了许多示例;你可以查看ConvolveBenchmarks
目录下的Makefile
-
但是你真正想要的是使用所谓的"package"。我们有一个完整的小插图rpp包专门用于此。它可以像调用为您创建包的
rcpp.package.skeleton()
函数一样简单,并且作为副作用创建了动态库。 -
如果所有这些都太令人困惑,请尝试先熟悉内联。使用
verbose=TRUE
参数查看内联如何构建动态库! -
最后,我们把它写成Rcpp,而不是Rcpp。
rcpp-devel
邮件列表也是一个很好的帮助来源。
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL
- 从 .lib 文件创建一个.dll文件
- 我可以用C++/WinRT编写一个DLL,供windows桌面应用程序(而不是UWP)或Unity插件使用吗
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- Java加载DLL,该DLL从JNI中的另一个DLL导出方法
- 如何在另一个 DLL 上使用 '/DELAYLOAD' 的 DLL
- 在一个 DLL 中嵌入所有必需的 DLL
- 用C++为java构建一个dll,它正在调用另一个dll(Eclipse上的JNI)
- 是否有从另一个DLL中加载DLL的最佳实践
- 如果你链接到一个DLL,如果该DLL丢失,是否可以启动你的可执行文件
- 第一次尝试创建一个包含许多类的DLL,捆绑在一个DLL中
- 如何正确删除从另一个DLL接收的派生对象
- 在 jmpq 上崩溃到另一个 dll 中的函数与 mingw64
- 将一个 dll 导入另一个 dll C++
- Visual Studio,C++,在另一个DLL导出的类中使用DLL导出的类
- 从另一个 dll 链接动态 dll 会导致错误
- 将一个C++ DLL 加载到 matlab 中,该 matlab 调用另一个 DLL 中的函数
- 用C++中的另一个Dll调用Dll
- LNK2019错误一个DLL链接到MFC DLL
- 导出另一个dll的静态成员