R 3.1.2 dyn.load()错误 - %1不是有效的Win32应用程序
我试图将一系列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 3.1.2 dyn.load()错误 - %1不是有效的Win32应用程序
由于R,Windows和WinGW32是32位,这不应该是一个标准的64位VS 32位的问题,因为此处建议:
和这里:
Using the rJava package on Win7 64 bit with R
错误是:
dyn.load(“close1.d “) 错误inDL(x,as.logical(local),as.logical(now),...): 无法加载共享对象'C:/Users/Morgan/Desktop/close1.dll': LoadLibrary失败:%1不是有效的Win32应用程序。 nd。
难道是因为它们之间存在依赖关系,文件需要首先转换为包吗?
编辑:为了说明起见,我是将文件编译成.dll文件。这些文件是压缩的.tgz文件。
我最近遇到类似问题,发现在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”是唯一有效的参数。
最佳,
杰森
.dll文件装载成R环境中使用dyn.load()命令时,我得到了相同的。 Sol: 我已经采用了.dll文件的完整路径,并且路径中包含空格(\ s)字符,这就是显示错误的原因。删除空格后,命令成功执行。 enter image description here
编辑您的答案并使其更具可读性 – urfusion
不幸的是,这些文件无法直接下载和加载 - 它们需要首先编译为.dll文件。查看问题**编辑**。 – Morgan
模式''wb''比'ab''更有意义,并且是相同的。 –