我下载了一些演示,它们带有Makefile。win和一个Makefile.sgi。我如何在Windows中运行这些程序来编译演示?


当前回答

看看cygwin,一个类似Unix的Windows环境

其他回答

如果您有Visual Studio,从开始菜单运行Visual Studio命令提示符,切换到包含Makefile的目录。赢得并输入以下内容:

nmake -f Makefile.win

你也可以使用普通的命令提示符并运行vsvars32.bat (c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools for VS2008)。这将设置运行nmake和查找编译器工具的环境。

看看cygwin,一个类似Unix的Windows环境

在Visual Studio 2017中,我必须将这个文件夹添加到Windows 10的path env变量中:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64

还有HostX86

对我来说,在windows上安装ubuntu WSL是最好的选择,这是在windows上编译makefile的最好工具。一千比Cygwin64更好,因为要编译一个makefile,你需要另一个包和编译软件,比如gfortran, netcdf等,在ubuntu WSL中,你可以非常容易和快速地安装所有这些包;)

如果您已经从MSYS2安装了Windows GNU编译器(MinGW),那么make命令将作为wingw32-make预安装。始终使用正确的make命令匹配cmake makefile生成。混合这些会产生问题。

使用MinGW make命令生成MinGW makefile

使用VS等效的make命令生成Visual Studio生成文件

只要你有源代码,这总是可能的。只需删除旧的构建目录,并通过在cmake中指定正确的参数重新开始。

mkdir build
cd build
cmake -G "MinGW MakeFiles" path/to/src/whereCMakeLists.txtInstructionsAre   
mingw32-make     
myProject.exe   # RUN

我在编译过程中遇到过多个make命令交互的问题。为了防止这种情况,只需编辑/删除导致不同make命令的环境变量。例如,为了防止与mingw冲突,只保留C:\msys64\mingw64\bin,而删除C:\msys64\usr\bin。另一个路径包含msys make,正如我所说,在编译过程中你不希望组合make命令。