我的老板刚要求我将他的老板Fortran代码集成到我正在研究的项目(Java)中。代码是在90年代编写的,所以我想它仍然会编译,所以不是重写它,我希望我可以从.dll调用函数。我已经调用了一些C .dll,所以我认为我已经覆盖了那部分。
我一直在阅读,大多数文章都谈到将英特尔Visual Fortran编译器集成到Microsoft Visual Studio中。我们获得了Visual Studio的大学网站许可,但看起来英特尔Visual Fortran编译器的价格在700美元左右。我认为我的老板不会那样做,所以我正在寻找另一种选择。我知道微软通过Project Dreamspark为学生免费提供了很多产品,但我没有看到Fortran相关的任何内容。
我正在考虑一些基于cygwin的选项(g95,我认为),但我正在寻找其他想法/选项。有什么想法吗?
答案 0 :(得分:10)
我使用带有-shared标志的gfortran(g95)编译器来创建DLL。首先使用:
编译.for / .f90文件gfortran -c myfile1.f90
gfortran -c myfile2.f90
然后:
gfortran -shared -o mydll.dll myfile1.o myfile2.o
答案 1 :(得分:3)
MinGW将允许您创建一个可以与MS一起使用的DLL。
答案 2 :(得分:2)
查找Windows的GCC端口,例如Mingw或GCW。这两个文件都将创建可以在Visual Studio中链接的.obj
文件。或者您可以使用它来配置VS以将其中一个命令行编译器调用到项目中。但是由于代码是相对静态的,所以编译一次可能是一个很好的编译并且忘记它的任务,希望如此。
答案 3 :(得分:1)
不要指望微软对Fortran提供太多帮助。 他们花了数年时间试图将其删除,转而支持Visual Basic / C.
您可以尝试Silverfrost的编译器。
http://www.silverfrost.com/11/ftn95/ftn95_fortran_95_for_windows.aspx
这是免费的('个人版'版本),适用于Visual Studio。 它基本上是一个F90 / F95编译器,包含一系列后续功能。 你没有说老老板的代码是用F77还是F90编写的。 但我认为Silverfrost将以最小的变化处理旧代码。
如果它对您来说很好,那么还有一个学术版和企业版可以根据需要升级。