在64位窗口上使用RcppArmadillo构建包
我一直在使用RcppArmadillo构建一个包,但遇到了一个小问题。我有一个完美的32位R工作包,但我希望它运行在64位。当我开始编写包时,我使用的是32位R(没有意识到),但当我转换到64位R时,我就无法构建包了。我收到的错误是“LoadLibrary失败:%1不是有效的Win32应用程序。” 我意识到问题在于.dll文件是32位的,所以64位R不能使用它。我不明白的是如何重新创建.dll,使其为64位。在64位R中,当我运行在64位窗口上使用RcppArmadillo构建包,r,rcpp,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
devtools::find_rtools()
时,我得到了TRUE,因此我怀疑我必须向makevars文件中添加一些内容才能使其正常工作
所以我的问题是:如何让一个使用RcppArmadillo的32位软件包在Windows上使用64位?任何指导都将不胜感激。啊哈,这是makevars文件
我不得不添加
$(shell“${R_HOME}/bin${R_ARCH_bin}/Rscript.exe”-e“Rcpp:::LdFlags()”)
啊哈,这是makevars文件
我必须添加$(shell“${R_HOME}/bin${R_ARCH_bin}/Rscript.exe”-e“Rcpp:::LdFlags()”)
所有CRAN包都构建在32位和64位窗口上
所有的CRAN提交,包括我不同的Rcpp*软件包(除了那些需要Unix、C++11或…)
因此,如果我是你,并且在设置我的主框时遇到(暂时)困难,我仍然会使用优秀的,它将为你生成32位和64位二进制文件。所有CRAN软件包都构建在32位和64位Windows上
所有的CRAN提交,包括我不同的Rcpp*软件包(除了那些需要Unix、C++11或…)
因此,如果我是你,并且在设置主框时遇到(暂时)困难,我仍然会使用优秀的,它将为你生成32位和64位二进制文件。不,你不再需要
Rcpp::LdFlags()
,除非你使用的是两年前的Rcpp。谢谢你的帮助,德克。通过将--force biarch
添加到R CMD INSTALL
中,我可以在不使用Rcpp::LdFlags()
的情况下构建该包。不,除非您使用的是两年前的Rcpp,否则您不再需要Rcpp::LdFlags()
。谢谢您的帮助,德克。通过将--force biarch
添加到R CMD INSTALL