我下载了一些演示,它们带有Makefile。win和一个Makefile.sgi。我如何在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
其他回答
首先,将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常用工具的路径在您的系统中可能不同。请相应更改。
如果您有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和查找编译器工具的环境。
下面是运行Makefile的快速而临时的方法
下载make from SourceForge: gnuwin32 安装它 进入安装文件夹
C:\Program Files (x86)\GnuWin32\bin
将bin中的所有文件复制到包含Makefile的文件夹中
libintl3.dll make.exe
在包含Makefile的文件夹中打开cmd(你可以用右键点击shift键)并运行
make.exe
完成了。
此外,您还可以在命令后添加参数,例如
做出.exe区分
你可以用chocolatey安装GNU make,这是一个维护良好的包管理器,它会将make添加到全局路径,并在所有的cli (powershell, git bash, cmd,等等…)上运行,为你节省大量的维护和初始设置时间。
为Windows安装巧克力包管理器 兼容Windows 7+ / Windows Server 2003+ 运行choco install make
我不属于choco,但我强烈推荐它,到目前为止,它从未让我失望,我确实有一种无意中破坏软件的天赋。
如果您已经从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命令。
推荐文章
- Windows和Linux上的c++编译:ifdef开关
- 如何验证批处理文件中是否存在一个文件?
- XAMPP -端口80被PID 4的“无法打开进程”使用!12
- 为什么git在Windows下记不住我的密码
- Git克隆/拉不断冻结在“存储密钥在缓存?”
- 有没有替换Windows (Visual C)的unistd.h ?
- 从Windows批处理文件设置系统环境变量?
- 在Makefile中@:(at符号冒号)是什么意思?
- 在Sublime Text 2中使用Ctrl+D进行多个选择时,我如何跳过匹配?
- #定义WIN32_LEAN_AND_MEAN具体排除了什么?
- 最好的轻量级web服务器(只有静态内容)的Windows
- npm犯错!错误:EPERM:操作不允许,重命名
- 崇高的文本从命令行
- 如何保持Python脚本输出窗口打开?
- 使用.bat文件检查文件夹是否存在