解决方法:window下make无法识别,同时缺少mingw32-make.exe文件

问题描述

(1)cmake编译c++程序遇到如下错误:
make : 无法将“make”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1

  • make
  •   + CategoryInfo          : ObjectNotFound: (make:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
    

(2) 同时通过搜索minGW/bin文件,发现并没有对应的mingw32-make.exe文件
(3)make: *** No targets specified and no makefile found. Stop

解决方式

(1)需要重新下载mingw32-make.exe文件
在minGW/bin文件,使用cmd输入如下命令

mingw-get install gcc g++ mingw32-make

输入后会安装

http://osdn.net/dl/mingw/gcc-9.2.0-2-mingw32-lic.tar.xz
21.33 kB / 21.33 kB     |================================================| 100%
http://osdn.net/dl/mingw/gcc-9.2.0-2-mingw32-man.tar.xz
281.37 kB / 281.37 kB   |================================================| 100%
http://osdn.net/dl/mingw/gcc-9.2.0-2-mingw32-info.tar.xz
1.00 MB / 1.00 MB       |================================================| 100%
http://osdn.net/dl/mingw/gcc-9.2.0-2-mingw32-lang.tar.xz
1.57 MB / 1.57 MB       |================================================| 100%
http://osdn.net/dl/mingw/gcc-c++-9.2.0-2-mingw32-man.tar.xz
255.52 kB / 255.52 kB   |================================================| 100%
http://prdownloads.sourceforge.net/mingw/make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma?download
94.58 kB / 94.58 kB     |================================================| 100%
http://prdownloads.sourceforge.net/mingw/make-3.82.90-2-mingw32-cvs-20120902-doc.tar.lzma?download
183.46 kB / 183.46 kB   |================================================| 100%
http://prdownloads.sourceforge.net/mingw/make-3.82.90-2-mingw32-cvs-20120902-lic.tar.lzma?download
11.23 kB / 11.23 kB     |================================================| 100%
http://prdownloads.sourceforge.net/mingw/make-3.82.90-2-mingw32-cvs-20120902-lang.tar.lzma?download
90.81 kB / 90.81 kB     |================================================| 100%
install: gcc-9.2.0-2-mingw32-lic.tar.xz
 installing gcc-9.2.0-2-mingw32-lic.tar.xz
install: gcc-core-9.2.0-2-mingw32-bin.tar.xz
mingw-get: *** ERROR *** package gcc-core-9.2.0-2-mingw32-bin.tar.xz is already installed
install: gcc-core-4.8.2-2-mingw32-dev.tar.lzma
 installing gcc-core-4.8.2-2-mingw32-dev.tar.lzma
install: gcc-core-4.8.1-5-mingw32-doc.tar.lzma
 installing gcc-core-4.8.1-5-mingw32-doc.tar.lzma
install: gcc-9.2.0-2-mingw32-man.tar.xz
 installing gcc-9.2.0-2-mingw32-man.tar.xz
install: gcc-9.2.0-2-mingw32-info.tar.xz
 installing gcc-9.2.0-2-mingw32-info.tar.xz
install: gcc-9.2.0-2-mingw32-lang.tar.xz
 installing gcc-9.2.0-2-mingw32-lang.tar.xz
install: gcc-c++-9.2.0-2-mingw32-bin.tar.xz
mingw-get: *** ERROR *** package gcc-c++-9.2.0-2-mingw32-bin.tar.xz is already installed
install: gcc-c++-4.8.2-2-mingw32-dev.tar.meta
 installing gcc-c++-4.8.2-2-mingw32-dev.tar.meta
install: gcc-c++-4.8.1-5-mingw32-doc.tar.lzma
 installing gcc-c++-4.8.1-5-mingw32-doc.tar.lzma
install: gcc-c++-9.2.0-2-mingw32-man.tar.xz
 installing gcc-c++-9.2.0-2-mingw32-man.tar.xz
install: make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma
 installing make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma
install: make-3.82.90-2-mingw32-cvs-20120902-doc.tar.lzma
 installing make-3.82.90-2-mingw32-cvs-20120902-doc.tar.lzma
install: make-3.82.90-2-mingw32-cvs-20120902-lic.tar.lzma
 installing make-3.82.90-2-mingw32-cvs-20120902-lic.tar.lzma
install: make-3.82.90-2-mingw32-cvs-20120902-lang.tar.lzma
 installing make-3.82.90-2-mingw32-cvs-20120902-lang.tar.lzma

(2)此时文件夹中会出现mingw32-make.exe程序
此时使用“mingw32-make”可以实现make编译,但是输入“make”还是会提示问题中的错误
(3)将mingw32-make.exe程序重命名为“make”,再编译就可以啦

(4)make: *** No targets specified and no makefile found. Stop
使用构建命令

cmake --build . --target all。

为什么该make命令在 Windows 上不起作用:CMake 是一种生成项目的工具,可以通过适合系统的构建工具来构建这些项目。CMake 通常为 Windows 生成 MSVC 项目,因此它不会通过make命令生成一个Makefile。

或者方法二:
删除现有build文件夹,重新使用如下命令进行编译:

cmake .. -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -G "Unix Makefiles" 	

cmake 的处理器结果使用"Unix Makefiles"

猜你喜欢

转载自blog.csdn.net/Xu_Huitong/article/details/129309798