我一直在使用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位?任何指导都将不胜感激。
答案 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')