我下载了一些演示,它们带有Makefile。win和一个Makefile.sgi。我如何在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和查找编译器工具的环境。
看看GnuWin的make(适用于windows),它为windows提供了一个本地端口(不需要像Cygwin那样的完整运行时环境)
如果你有winget,你可以像这样通过CLI安装:
winget install GnuWin32.Make
另外,请确保将安装路径添加到您的系统path:
C:\Program Files (x86)\GnuWin32\bin
首先,将visual studio常用工具的路径(c:\Program Files (x86)\Microsoft visual studio 14.0\Common7\ tools)添加到系统路径中。要了解如何将路径添加到系统路径中,请查看此网站: http://www.computerhope.com/issues/ch000549.htm。你只需要这样做一次。
在此之后,只要需要,打开命令行并执行vsvars32.bat,将所有所需的visual studio工具路径添加到系统路径中。
然后,你可以调用nmake -f makefile.mak
PS: visual studio常用工具的路径在您的系统中可能不同。请相应更改。
如果它是一个“NMake Makefile”,也就是说语法和命令与NMake兼容,它将在Windows上本机工作。通常Makefile。win (.win后缀)表示它是一个与Windows NMake兼容的makefile。你可以试试nmake -f makefile。win。
通常提供标准的Linux makefile文件,NMake看起来很有前途。但是,下面的链接使用了一个简单的Linux Makefile,并解释了可能遇到的一些基本问题。本文还提出了一些在Windows上处理Linux makefile的替代方法。
Windows中的Makefiles
在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
下面是运行Makefile的快速而临时的方法
下载make from SourceForge: gnuwin32 安装它 进入安装文件夹
C:\Program Files (x86)\GnuWin32\bin
将bin中的所有文件复制到包含Makefile的文件夹中
libintl3.dll make.exe
在包含Makefile的文件夹中打开cmd(你可以用右键点击shift键)并运行
make.exe
完成了。
此外,您还可以在命令后添加参数,例如
做出.exe区分
如果你安装Cygwin。确保在安装程序中选择Make。如果您有一个Makefile,那么可以运行以下命令。
make -f Makefile
https://cygwin.com/install.html
你可以用chocolatey安装GNU make,这是一个维护良好的包管理器,它会将make添加到全局路径,并在所有的cli (powershell, git bash, cmd,等等…)上运行,为你节省大量的维护和初始设置时间。
为Windows安装巧克力包管理器 兼容Windows 7+ / Windows Server 2003+ 运行choco install make
我不属于choco,但我强烈推荐它,到目前为止,它从未让我失望,我确实有一种无意中破坏软件的天赋。
我尝试了cygwin和gnuwin,并没有为我工作,我猜是因为makefile主要使用特定的linux代码。
它的工作原理是在Windows 10上使用Ubuntu Bash。如果你来自MAC,这就是一个奇迹,就像我的情况一样:
安装Ubuntu Bash: https://itsfoss.com/install-bash-on-windows/ 进入控制台后,要安装make,只需输入“make”,它就会给出下载说明。
附加功能:
在bash上启用复制/粘贴:在Windows Ubuntu上的bash上复制粘贴 在我的例子中,make名为Maven,所以我也必须安装它:https://askubuntu.com/questions/722993/unable-to-locate-package-maven 要访问windows文件系统C: drive,例如:"cd /mnt/ C /"
希望能有所帮助
我使用MinGW工具集,它提供了mingw32-make构建工具,如果你在PATH系统变量中有它,在Windows命令提示符中进入包含文件的目录并键入以下命令:
mingw32-make -f Makefile.win
做完了。
下载网址:https://sourceforge.net/projects/gnuwin32/ 在命令提示符中预先设置变量路径,以便识别(C:\Program Files (x86)\GnuWin32\bin)
我假设你添加了mingw32/bin被添加到环境变量中,否则请添加它,我假设它是gcc编译器,你有mingw安装程序。
第一步:从mingw安装程序下载mingw32-make.exe,或先检查mingw/bin文件夹是否存在mingw32-make.exe,否则安装,重命名为make.exe。
将其重命名为make.exe后,只需在makefile所在的目录中运行此命令。您可以直接以mingw32-make的形式运行它,而不是重命名它。
毕竟,命令只是一个exe文件或软件,我们用它的名字来执行软件,我们称它为命令。
所以如果你正在使用Vscode和Mingw,那么你应该首先确保Mingw的bin文件夹包含在环境路径中,最好将mingw32-make.exe更改为make,以简化任务,然后创建一个makefile 并在其中包含这个代码。
all:
gcc -o filename filename.c
./filename
然后保存makefile并打开Vscode Code终端并写入make。然后makefile将被执行。
以上这些我都试过了。帮助我的是:
下载mingw-get。 设置它。 向环境变量中添加如下代码:C:\MinGW\bin。 启动(!重要)git bash。电源外壳,开发人员vs cmd,系统cmd等没有帮助。 在命令行中输入mingw-get。 输入mingw-get后,安装mingw32-make。
完成了!现在您可以从包含Makefile的任何文件夹中使用make命令。
安装msys2的make依赖添加到PATH变量。 (第二个选项是GNU ToolChain for Windows。MinGW版本已经包含了mingw32-make。)
安装Git Bash。在Git Bash中运行mingw32-make。
如果您已经从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命令。
登录http://gnuwin32.sourceforge.net/packages/make.htm下载make-3.81.exe,安装并添加到Windows路径。
对我来说,在windows上安装ubuntu WSL是最好的选择,这是在windows上编译makefile的最好工具。一千比Cygwin64更好,因为要编译一个makefile,你需要另一个包和编译软件,比如gfortran, netcdf等,在ubuntu WSL中,你可以非常容易和快速地安装所有这些包;)
推荐文章
- 如何在命令提示符中使用空格?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 命令行从操作系统级配置中删除环境变量
- @, -和+作为Make中食谱行前缀的作用是什么?
- 在特定的文件夹中打开Cygwin
- 命令行svn for Windows?
- Gulp命令未找到-安装Gulp后错误
- 如何找到并运行keytool
- 我的Windows应用程序的图标应该包括哪些大小?
- 在makefile中抑制命令调用的回声?
- 在Windows上设置Python simpleHTTPserver
- 如何从批处理文件运行PowerShell脚本
- 使用“start”命令并将参数传递给已启动的程序
- 无法在打开用户映射区段的文件上执行所请求的操作
- 如何编写多行命令?