R 3.1.2 dyn.load()错误 - %1不是有效的Win32应用程序

时间:2014-12-29 20:37:56

标签: r windows-7 mingw32

我尝试将一系列Fortran文件合并到R中进行研究(文件位于http://tyrosine.usc.edu/closure)。使用MinGW32的GNU Fortran编译器(4.8.1-4)将文件编译成.dll格式。我通过RStudio(0.98.1028)运行32位Windows 7和32位R(3.1.2)。

由于R,Windows和WinGW32是32位,因此这不应该是标准的64位与32位问题,如下所示:

Not a valid Win32 application

在这里:

Using the rJava package on Win7 64 bit with R

错误是:

  

dyn.load(" close1.dll&#34)       inDL(x,as.logical(local),as.logical(now),...)出错:       无法加载共享对象&C; /Users/Morgan/Desktop/close1.dll':       LoadLibrary失败:%1不是有效的Win32应用程序。     nd。

考虑到它们之间存在依赖关系,是否需要首先将文件转换为包?

编辑:为了澄清,我是将文件编译为.dll的人。这些文件是.tgz压缩的。

2 个答案:

答案 0 :(得分:0)

我最近遇到了类似的问题,发现操纵download.file中的方法和模式选项解决了这个问题。

download.file("http://tyrosine.usc.edu/closure/close1.dll",
          paste(c(getwd(),"/close1.dll"), collapse=""),
          method="internal",mode="ab")

dyn.load("close1.dll")

另外,使用Dependency Walker检查下载的文件。这表明,对于不同的模式参数,R在下载期间将文件更改为既不是32位应用程序也不是64位应用程序。对我来说,mode =“ab”是唯一有效的论据。

最佳,

杰森

答案 1 :(得分:0)

使用dyn.load()命令将.dll加载到R环境时也是如此。 的溶胶: 我已经采用了.dll文件的完整路径,并且路径包含空格(\ s)字符,这就是它显示错误的原因。删除空格后命令执行成功。 enter image description here