Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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
';制作';在RStudio中尝试在Windows 10上创建共享库文件时未找到_R_Fortran_Shared Libraries - Fatal编程技术网

';制作';在RStudio中尝试在Windows 10上创建共享库文件时未找到

';制作';在RStudio中尝试在Windows 10上创建共享库文件时未找到,r,fortran,shared-libraries,R,Fortran,Shared Libraries,嗨 使用上面的代码和gfortran编译器,我试图创建一个共享库文件(.so或.dll),并将其加载到Windows 10上的RStudio中 我找到的原始代码说我应该创建一个“.so”文件。 但当我在Windows10上工作时,我想我应该改为创建“.dll”文件 参考web(),我制作了一个名为“factor.f”的Fortran脚本,并尝试使用上面的system()函数在RStudio中编译它;我编译失败,出现错误: 在系统(cmd)中:未找到“make” 我检查了我的系统是否在cmd(版本

使用上面的代码和gfortran编译器,我试图创建一个共享库文件(.so或.dll),并将其加载到Windows 10上的RStudio中

我找到的原始代码说我应该创建一个“.so”文件。 但当我在Windows10上工作时,我想我应该改为创建“.dll”文件

参考web(),我制作了一个名为“factor.f”的Fortran脚本,并尝试使用上面的system()函数在RStudio中编译它;我编译失败,出现错误:

在系统(cmd)中:未找到“make”

我检查了我的系统是否在cmd(版本6.3.0)中有带“gcc-v”的gfortran

我还将gfortran注册到我的环境路径(C:\MinGW\bin)

使用-o标志运行system()(例如system('R CMD SHLIB-o fsmm.dll fact.f')) 也提示了同样的错误


如何在Windows 10上的RStudio中生成.so(或.dll)文件?

我通过重新安装Rtools解决了问题

执行此操作后,find_rtools()返回“TRUE”,而没有在上述代码中运行assignInNamespace(~~)


谢谢。

你安装了rtools吗?你需要一个
make
的工作副本来编译,windows没有。@MrFlick是的,我有。但是R没有识别它(find\u rools()返回“FALSE”),所以我添加了assignInNamespace(~~),这使得find\u rtools()返回“TRUE”
require(devtools)
assignInNamespace("version_info", 
              c(devtools:::version_info,
                list("3.5" = list(version_min = "3.3.0",
                                  version_max = "99.99.99", 
                                  path = "bin"))),
              "devtools")
find_rtools() # TRUE
system('R CMD SHLIB facto.f') ## got an error 
dyn.load('facto.so') ## haven't run yet. .so or .dll