如何使用 CMake 获取要在 Windows/MinGW 上编译的基本 Fortran 文件?

How can I get a basic Fortran file to compile on Windows/MinGW using CMake?

我完全迷失了让 CMake 在 Windows 上工作的尝试。我有一个包含 Fortran 和 C 文件的项目 (ECCODES)。如果我不使用 CMake,我可以编译 Fortran 文件。但是这个项目附带了大量的 CMake 文件。我查看下面的错误,它对我说,“我 (CMake) 无法编译简单的 Fortran 程序,即使您可以在不使用 CMake 时编译 Fortran 文件。” 可以有人理解这个吗?我正在尝试使用 mingw64,因为我无法在此项目上使用 cygwin 进行 Windows 构建。在 Mac OS X 和 GNU/Linux 上一切正常,但我必须 运行 这个项目 Windows...

Error:The Fortran compiler "c:/gcc-5.1.0-tdm64-1-fortran/bin/gfortran.exe" is not able to compile a simple test program.
It fails with the following output:
 Change Dir: C:/Users/knauthg/.CLion2016.1/system/cmake/generated/ECCodes-45f4e5f3/45f4e5f3/__default__/CMakeFiles/CMakeTmp
Run Build Command:"C:/mingw64/bin/mingw32-make.exe" "cmTC_93cb8/fast"
C:/mingw64/bin/mingw32-make.exe -f CMakeFiles\cmTC_93cb8.dir\build.make CMakeFiles/cmTC_93cb8.dir/build
mingw32-make.exe[1]: Entering directory 'C:/Users/knauthg/.CLion2016.1/system/cmake/generated/ECCodes-45f4e5f3/45f4e5f3/__default__/CMakeFiles/CMakeTmp'
Building Fortran object CMakeFiles/cmTC_93cb8.dir/testFortranCompiler.f.obj
c:\gcc-5.1.0-tdm64-1-fortran\bin\gfortran.exe -c C:\Users\knauthg\.CLion2016.1\system\cmake\generated\ECCodes-45f4e5f3f4e5f3\__default__\CMakeFiles\CMakeTmp\testFortranCompiler.f -o CMakeFiles\cmTC_93cb8.dir\testFortranCompiler.f.obj
CMakeFiles\cmTC_93cb8.dir\build.make:64: recipe for target 'CMakeFiles/cmTC_93cb8.dir/testFortranCompiler.f.obj' failed
mingw32-make.exe[1]: *** [CMakeFiles/cmTC_93cb8.dir/testFortranCompiler.f.obj] Error 1
mingw32-make.exe[1]: Leaving directory 'C:/Users/knauthg/.CLion2016.1/system/cmake/generated/ECCodes-45f4e5f3/45f4e5f3/__default__/CMakeFiles/CMakeTmp'
Makefile:125: recipe for target 'cmTC_93cb8/fast' failed
mingw32-make.exe: *** [cmTC_93cb8/fast] Error 2
CMake will not be able to correctly generate this project.

之前,我使用 tdm-gcc Windows 64-bit build of gfortran. I switched to the 64-bit build of gfortran by Simply Fortran, and now the entire ECCODES 项目构建使用 CMake 完成。我仍在使用 MingW64 gcc 来编译 C 文件。

向 John Wasilewski 致敬 thread of Physics Forums 他提供了有关 Simply Fortran 的技巧。