Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在64位窗口上使用RcppArmadillo构建包_R_Rcpp - Fatal编程技术网

在64位窗口上使用RcppArmadillo构建包

在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

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

我意识到问题在于.dll文件是32位的,所以64位R不能使用它。我不明白的是如何重新创建.dll,使其为64位。在64位R中,当我运行
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