使用mingw64生成MinGW Makefiles时一直失败

2023-05-16

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(Tutorial )

set(CMAKE_CXX_COMPILER "D:/solfware/mingw64/bin/g++.exe")
set(CMAKE_C_COMPILER "D:/solfware/mingw64/bin/gcc.exe")
set(CMAKE_MAKE_PROGRAM "D:/solfware/mingw64/bin/make.exe")

add_executable(Tutorial tutorial.cxx)

tutorial.cxx

// A simple program that computes the square root of a number
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <string>

int main(int argc, char* argv[])
{
  if (argc < 2) {
    std::cout << "Usage: " << argv[0] << " number" << std::endl;
    return 1;
  }

  // convert input to double
  const double inputValue = atof(argv[1]);

  // calculate square root
  const double outputValue = sqrt(inputValue);
  std::cout << "The square root of " << inputValue << " is " << outputValue
            << std::endl;
  return 0;
}

生成Makefile

:\Users\AW\Downloads\CMake-master\CMake-master\Help\guide\tutorial\Step1\Step1_build>cmake -G "MinGW Makefiles" ..
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "C:/Users/AW/Downloads/CMake-master/CMake-master/Help/guide/tutorial/Step1/Step1_build/CMakeFiles/CMakeOutput.log".

原因

D:\solfware\mingw64\bin 的目录

2023/04/11  16:58    <DIR>          .
2023/04/11  16:58    <DIR>          ..
2018/05/12  11:07         1,055,744 addr2line.exe
2018/05/12  11:07         1,079,808 ar.exe
2018/05/12  11:07         1,897,472 as.exe
2018/05/12  14:10         1,958,400 c++.exe
2018/05/12  11:07         1,054,208 c++filt.exe
2018/05/12  14:10         1,956,352 cpp.exe
2018/05/12  11:07         1,113,088 dlltool.exe
2018/05/12  11:07            52,736 dllwrap.exe
2018/05/12  11:07         3,121,664 dwp.exe
2018/05/12  11:07            38,912 elfedit.exe
2018/05/12  14:10         1,958,400 g++.exe
2018/05/12  14:10            59,392 gcc-ar.exe
2018/05/12  14:10            59,392 gcc-nm.exe
2018/05/12  14:10            59,392 gcc-ranlib.exe
2018/05/12  14:10         1,955,328 gcc.exe
2018/05/12  14:10         1,401,856 gcov-dump.exe
2018/05/12  14:10         1,457,152 gcov-tool.exe
2018/05/12  14:10         1,535,488 gcov.exe
2018/05/12  15:28            59,605 gdb.exe
2018/05/12  15:28         9,594,561 gdborig.exe
2018/05/12  15:28           506,436 gdbserver.exe
2018/05/12  14:12            55,808 gendef.exe
2018/05/12  14:12            73,728 genidl.exe
2018/05/12  14:12            28,672 genpeimg.exe
2018/05/12  14:10         1,957,376 gfortran.exe
2018/05/12  11:07         1,119,744 gprof.exe
2018/05/12  11:07         1,489,408 ld.bfd.exe
2018/05/12  11:07         1,489,408 ld.exe
2018/05/12  11:07         5,157,376 ld.gold.exe
2018/05/12  14:11            32,768 libatomic-1.dll
2018/05/12  14:11            76,288 libgcc_s_seh-1.dll
2018/05/12  14:11           156,672 libgomp-1.dll
2018/05/12  14:11           334,848 libquadmath-0.dll
2018/05/12  14:11            17,408 libssp-0.dll
2018/05/12  14:11         1,417,216 libstdc++-6.dll
2018/05/12  14:11            52,224 libwinpthread-1.dll
2018/05/12  15:29           221,184 make.exe
2018/05/12  15:29           221,184 mingw32-make.exe
2018/05/12  11:07         1,067,008 nm.exe
2018/05/12  11:07         1,234,432 objcopy.exe
2018/05/12  11:07         2,285,056 objdump.exe
2018/05/12  11:07         1,079,808 ranlib.exe
2018/05/12  11:07           581,632 readelf.exe
2018/05/12  11:07         1,056,256 size.exe
2018/05/12  11:07         1,056,256 strings.exe
2018/05/12  11:07         1,234,432 strip.exe
2018/05/12  14:13           437,760 widl.exe
2018/05/12  11:07         1,078,272 windmc.exe
2018/05/12  11:07         1,166,848 windres.exe
2018/05/12  14:10         1,958,400 x86_64-w64-mingw32-c++.exe
2018/05/12  14:10         1,958,400 x86_64-w64-mingw32-g++.exe
2018/05/12  14:10         1,955,328 x86_64-w64-mingw32-gcc-8.1.0.exe
2018/05/12  14:10            59,392 x86_64-w64-mingw32-gcc-ar.exe
2018/05/12  14:10            59,392 x86_64-w64-mingw32-gcc-nm.exe
2018/05/12  14:10            59,392 x86_64-w64-mingw32-gcc-ranlib.exe
2018/05/12  14:10         1,955,328 x86_64-w64-mingw32-gcc.exe
2018/05/12  14:10         1,957,376 x86_64-w64-mingw32-gfortran.exe

安装时把mingw32-make.exe改成了make.exe,这时在mingw下找不到可以生成的MinGW Makefile的mingw32-make.exe。

解决办法

将mingw32-make.exe copy一份,重命名为make.exe,使得mingw/bin下有这两个文件即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用mingw64生成MinGW Makefiles时一直失败 的相关文章

随机推荐