问题描述
我有一个用 Ubuntu Linux 编写的 Fortran 程序 (.f)。我使用下面的命令在 Linux 中编译了编写的 Fortran 程序并成功执行。
gfortran -o program program.f
现在我想在Windows 10中执行同样的Fortran程序可以在window系统中执行吗?如果是这样,请建议我一种方法。
我在 Windows 命令窗口中尝试了 gfortran -o program program.f
,但它失败了。
解决方法
要为 Windows 编译 Fortran 代码,您需要一个适用于 Windows 的 Fortran 编译器。微软既不提供内置的,也不提供出售的。可以使用第三方编译器,包括 gfortran
,但您需要自己安装。如果您特别想使用 gfortran
,或者您喜欢它只是因为您不必花钱来获得它,那么我建议您将它作为 mingw-w64 的一部分来获取。替代品可从 multiple vendors 获得,有些是免费的,但大多数是出售的。
另请注意,Windows 希望可执行文件以 .exe
扩展名命名,因此您可能希望在编译命令中使用 gfortran 的变体:
gfortran -o program.exe program.f
,
如果你想在 Windows 上使用 gfortran,我建议你安装 MSYS2,它有一个 bash 终端,一个可以安装 gcc 和 gfortran 的包管理器,以及 lapack 和许多其他库。
>还有一个单独的 mingw-w64 发行版,可以在没有 MSYS2 的情况下安装,但我不推荐它,因为那里的最后一个文件有 gcc-8.1.0,从 2018 年开始(除了最近的构建由 Ray Linn 编写,包括 Ada,但不包括 Fortran 编译器)。
另一个现在免费的编译器是 Intel Fortran:您必须安装 Microsoft Visual Studio Community、Intel oneAPI Base Toolkit 和 Intel oneAPI HPC Toolkit。更多信息here。在 Linux、macOS 和 Windows 上可用(当然,只有在 Windows 上才需要 Visual Studio)。英特尔 oneAPI 至少部分是 open source,不确定 Fortran 编译器。
MSYS2 是一个小得多的包(就所需的磁盘速度而言),并且被其他几个免费项目使用:R (Rtools)、Octave 和 { {3}} 都包含其中的一部分,包括 gcc 编译器。