我尝试将一系列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位问题,如下所示:
在这里:
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压缩的。
答案 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