在64位Windows上使用RcppArmadillo构建软件包

时间:2016-01-14 22:58:24

标签: r rcpp

我一直在使用RcppArmadillo来构建一个包,但是我遇到了一个小问题。我有一个32位R的完美工作包,但我希望它能在64位上运行。当我开始使用软件包时,我使用的是32位R(没有意识到),但是当我转移到64位R时,我停止了构建我的软件包。我收到错误说“LoadLibrary失败:%1不是有效的Win32应用程序。”

我意识到问题是.dll文件是32位,因此64位R无法使用它。我不明白的是如何重新创建.dll以使其为64位。在64位R中,当我运行devtools::find_rtools()时,我得到了TRUE,因此我怀疑我必须在makevars文件中添加一些内容才能使其正常工作。

所以我的问题用一句话来说:你怎么得到一个工作的32位软件包与RcppArmadillo在Windows上使用64位?任何指导都将不胜感激。

2 个答案:

答案 0 :(得分:2)

所有 CRAN软件包都在32位和64位Windows上构建。

所有 CRAN提交,包括我的不同Rcpp *包(除了那些需要Unix,或C ++ 11,或......)。

所以,如果我是你,并且(临时)设置我的主盒子的麻烦,我仍然会使用优秀的win-builder,它将为你生成32位和64位二进制文​​件。

答案 1 :(得分:0)

啊哈,这是makevars文件。

我必须添加and (ItemCode in (Select ItemCode from UnitProducts where Unit='BIG RED ONE') OR ItemCode = 'X')