楼主: 南开2011博
8423 25

[问答] R调用Fortran程序 [推广有奖]

11
南开2011博 发表于 2011-12-19 15:08:04
epoh 发表于 2011-12-19 13:38
假设上面的例子还不够清楚
底下这个例子也很浅显明白
我的r 的工作目录改了,还是不能。我觉得主要原因是没有dll 文件 您觉得呢?

12
epoh 发表于 2011-12-19 15:52:18
南开2011博 发表于 2011-12-19 15:08
我的r 的工作目录改了,还是不能。我觉得主要原因是没有dll 文件 您觉得呢?
先声明一下
用plato得到.dll ,R读不到
同理我用Compaq Visual Fortran,得到.dll ,R也读不到
R只读的到用gfortran(F95 compiler) 产生的.dll
换句话说你还是要装Rtools(我知道你不愿意)

这里所说路径是参照Rtools,
Appendix D The Windows toolset

PATH=c:\Rtools\bin;c:\Rtools\MinGW\bin;c:\MiKTeX\miktex\bin;
          C:\Program Files\R\R-2.....\bin\i386;
如此系统才找的到R

13
南开2011博 发表于 2011-12-19 17:25:00
.dll 生成了 但是在R里执行
> dyn.load("bar.dll")
警告信息:
In inDL(x, as.logical(local), as.logical(now), ...) :
  DLL试图把FPU控制词从8001f改成1

是什么原因啊?谢谢回答

14
epoh 发表于 2011-12-19 18:23:27
南开2011博 发表于 2011-12-19 17:25
.dll 生成了 但是在R里执行
> dyn.load("bar.dll")
警告信息:
哈哈!你应该不是用gfortran吧

15
南开2011博 发表于 2011-12-19 19:10:55
epoh 发表于 2011-12-19 18:23
哈哈!你应该不是用gfortran吧
呵呵,gfortran下了三小时只下到一半,现在还在下载。我用的是plato 。现在的问题是有.obj .dll 在r里边还是不能运行了?

16
南开2011博 发表于 2011-12-19 19:13:44
epoh 发表于 2011-12-19 15:52
先声明一下
用plato得到.dll ,R读不到
同理我用Compaq Visual Fortran,得到.dll ,R也读不到
非常感谢,那我先下载gfortran

17
epoh 发表于 2011-12-19 19:35:04
南开2011博 发表于 2011-12-19 19:13
非常感谢,那我先下载gfortran
个人觉得你应该安装 Rtools
安装后就有gcc,gfortran,..可用
而且方便你以后call C
或者build R package

18
南开2011博 发表于 2011-12-19 21:53:22
epoh 发表于 2011-12-19 19:35
个人觉得你应该安装 Rtools
安装后就有gcc,gfortran,..可用
而且方便你以后call C
终于安装上了。但运行 gfortran 闪一下就关掉了 怎么回事?

19
epoh 发表于 2011-12-19 22:02:49
南开2011博 发表于 2011-12-19 21:53
终于安装上了。但运行 gfortran 闪一下就关掉了 怎么回事?
不会吧
D:\>R CMD SHLIB bar.f
cygwin warning:
  MS-DOS style path detected: C:/PROGRA~1/R/R-213~1.0/etc/i386/Makeconf
  Preferred POSIX equivalent is: /cygdrive/c/PROGRA~1/R/R-213~1.0/etc/i386/Makec
onf
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
gfortran     -O3  -c bar.f -o bar.o
gcc -shared -s -static-libgcc -o bar.dll tmp.def bar.o -lgfortran -LC:/PROGRA~1/
R/R-213~1.0/bin/i386 -lR

20
南开2011博 发表于 2011-12-19 22:59:26
epoh 发表于 2011-12-19 22:02
不会吧
D:\>R CMD SHLIB bar.f
cygwin warning:
gfortran 放在C:\Rtools\gcc-4.5.4\bin ,双击gfortran 出现命令提示符 黑屏闪一下 就关掉了 ???

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 01:51