make: *** 没有指明目标并且找不到 makefile。 停止

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了make: *** 没有指明目标并且找不到 makefile。 停止相关的知识,希望对你有一定的参考价值。

参考技术A 那就是没有找到makefile咯,你看下configure的时候有没有报错呀,是不是提示有什么依赖的包没有装,先把依赖的包装了,再configure,试试,看有没有makefile。里面应该也有readme或者install这种文件,可以看看有没有什么帮助信息,或者需要什么特殊设置

通过make运行时找不到CMake

【中文标题】通过make运行时找不到CMake【英文标题】:CMake is not found when running through make 【发布时间】:2018-01-31 17:08:06 【问题描述】:

我正在尝试构建 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

我不确定出了什么问题。请帮帮我。

谢谢。

【问题讨论】:

看来cmake运行的时候,它的路径其实是/usr/bin/cmake。您在哪个环境(Windows、MSYS)中运行了cmake,您使用了哪个generator? 【参考方案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。

【讨论】:

以上是关于make: *** 没有指明目标并且找不到 makefile。 停止的主要内容,如果未能解决你的问题,请参考以下文章

make: *** 没有指明目标并且找不到 makefile。 停止

源码编译nginx的时候,出现“make: *** 没有指明目标并且找不到 makefile。 停止“。的报错的解决方法

make: *** 没有指明目标并且找不到 makefile。 停止。

make: *** 没有指明目标并且找不到 makefile. 停止.

make: *** 没有指明目标并且找不到 makefile。 停止

make: *** 没有指明目标并且找不到 makefile。 停止。