我的老板只是要求我把老板的Fortran代码整合到我正在开发的项目(Java)中。 代码是在90年代写的,所以我想它仍然会编译,所以不是重新编写它,我希望我可以从一个.dll调用函数。 我已经调用了一些C .dll,所以我想我已经包含了这个部分。
我一直在做一些阅读,大部分文章都将英特尔Visual Fortran编译器集成到Microsoft Visual Studio中。 我们已经获得了Visual Studio的大学网站许可证,但看起来英特尔Visual Fortran编译器的价格在700美元左右。 我不认为我的老板会这样做,所以我正在寻找另一种select。 我知道微软通过Project Dreamspark为学生们提供了很多免费的产品,但是我没有看到任何与Fortran相关的东西。
我正在寻找一些基于cygwin的选项(g95,我想),但我正在寻找其他的想法/选项。 有任何想法吗?
我使用带有-shared标志的gfortran(g95)编译器来创建DLL。 首先编译.for / .f90文件:
gfortran -c myfile1.f90 gfortran -c myfile2.f90
然后:
gfortran -shared -o mydll.dll myfile1.o myfile2.o
MinGW将让你创建一个DLL,将与你的MS的东西。
寻找到Windows的GCC端口,例如Mingw或GCW 。 这两个都会创建可以在Visual Studio中链接的.obj
文件。 或者你也可以将VS配置成调用其中一个命令行编译器到项目中。 但是由于代码是相对静态的,这可能是一个很好的编译一次,并忘记它的任务,希望。
不要期望微软在Fortran上有太多的帮助。 他们花了好几年的时间试图杀死它,转而使用Visual Basic / C。
你可以试试Silverfrost的编译器。
http://www.silverfrost.com/11/ftn95/ftn95_fortran_95_for_windows.aspx
这是免费的(“个人版”版本),并与Visual Studio的工作。 它基本上是一个F90 / F95编译器,其中包含一些后续功能。 你没有说过老上司的代码是用F77还是F90写的。 但是我认为Silverfrost会以最小的改变处理旧的代码。
如果对你来说很好,还有一个学术版本和一个企业版本可以根据需要进行调整。