构建调用Fortran的R包时出现32位和64位错误

时间:2017-08-28 15:00:02

标签: r fortran package

我正在尝试构建一个在Windows系统中调用Fortran代码的R包。 R BUILD工作正常,但我在R CHECK或R INSTALL中遇到了一些错误。

要编译Fortran代码以在Windows系统中获取dll文件,我必须指定x64(64位)或i386(32位)。但是当我在R CHECK中使用x64编译的dll文件时,我会收到错误:

inDL(x,as.logical(local),as.logical(now),...)出错:   无法加载共享对象' C:/ Program Files / R / R-3.3.1 / bin / catch.Rcheck / catch / libs / i386 / tensor.dll':   LoadLibrary失败:%1不是有效的Win32应用程序。

同样,如果我使用i386编译的dll文件,我将在64位安装中出错。

我想知道是否有任何方法我可以使用x64中的dll来构建一个适用于64位机器的程序包和来自i386的dll来构建一个32位机器。谢谢!

1 个答案:

答案 0 :(得分:0)

已经有一段时间了,但是以防万一人们遇到同样的问题。这是一个设计问题,需要分别构建32位和64位编译文件。解决方案是,要构建64位版本,需要将i386移出该文件夹。