在make中运行时找不到CMake

时间:2018-01-31 17:08:07

标签: c++ makefile cmake msys

我正在尝试构建https://github.com/AlbertWerner/cryptonotecoinwallet并遇到问题。

根据repo的README,我可以运行cmake命令,它完成没有任何错误。但是,当我运行make时,它会给我以下错误。

$ make
make: /usr/bin/cmake: Command not found
make: *** [Makefile:5138: cmake_check_build_system] Error 127

我在Windows上使用MSYS,以下是相应的详细信息。

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/mingw32/bin

$ which cmake
/mingw32/bin/cmake

好像它正在寻找错误路径中的cmake

生成文件

cmake_check_build_system:
    $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system # <== Line 5139

我不确定是什么问题。请帮帮我。

感谢。

1 个答案:

答案 0 :(得分:1)

确保使用MSYS2安装顶层的mingw32.exe可执行文件启动MSYS2,并在首次运行cmake时使用该环境。如果您在其他环境中运行CMake,请删除它创建的所有文件。运行cmake和构建项目的命令应该是这样的,假设开发人员以合理的方式设置它:

mkdir build
cd build
cmake .. -G"MSYS Makefiles"
make

我自己没有尝试过,因为我对从互联网上运行随机代码持谨慎态度,但我在CMakefile中发现这个注释表明开发人员不支持MSYS2:

if (WIN32)
  if (NOT MSVC)
        message(FATAL_ERROR "Only MSVC is supported on this platform")
  endif ()
  ...

因此,如果您真的想要这样做,您将不得不花费一些精力将此程序中特定于Windows的代码移植到GCC。