使用 make 命令时出现错误“make: [Makefile:2: all] Error 127”

Posted

技术标签:

【中文标题】使用 make 命令时出现错误“make: [Makefile:2: all] Error 127”【英文标题】:Getting the error "make: [Makefile:2: all] Error 127" when I use the make command 【发布时间】:2021-02-08 06:16:56 【问题描述】:

我正在尝试将this project 安装到我的计算机上,但一直遇到问题。

我现在遇到的障碍是错误 127。大部分安装工作正常,直到进入“制作”步骤。我得到以下输出:

mkdir -p build && cd build && cmake .. && make
/bin/sh: cmake: commant not found
make: *** [Makefile:2: all] Error 127

我尝试在 Windows 10 的 Git Bash 上安装并在 CentOS 中使用终端。两者都给了我同样的错误。我曾尝试在 CentOS 上安装 cmake,但现在我不确定如何处理它。我还在 Windows 机器上安装了 MinGW,但没有运气。

我对 Linux/Unix 比较陌生(对 Git 也很陌生),所以如果答案很明显,我深表歉意。

我发现了与此类似的其他问题,但答案总是类似于“它正在尝试构建某些东西,但它不能。需要更多上下文”

edit: Cmake 已安装(据我所知)。我使用这个walk through 来安装它(更新文件名和内容以与当前版本的 cmake 相对应)。 cmake 目录安装在 Downloads 目录中,直到我移动它(详情如下)。

有人建议 cmake 不在 $PATH 变量可访问的目录中。我将它移到了我刚才添加到 $PATH 变量中的目录中,但我仍然遇到同样的错误。

编辑 2:好的,所以我通过 CentOS 软件应用程序安装了 cmake。 make 命令现在可以工作了,但是有一个不同的问题。运行 make 命令输出错误。 CMakerror.log 文件一遍又一遍地填充:

Compilling the CXX compiler identification source file "CMakeCXXComilerID.cpp" failed
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags: -c

The output was:
No such file or directory

有很多这样的不同条目,它们之间的唯一区别是Id标志位有时有一个“-c”,但它也有“--c++”和“--ec++”

编辑 3:这是使用 make 命令的输出:

mkdir -p build && cd build && cmake .. && make
-- The CXX compiler identification is unknown
CMake Error in CMakeLists.txt:
  No CMAKE_CXX_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.


CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 3.11)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring incomplete, errors occurred!
See also "/home/ellingtonj/wave-gui/CMakeFiles/CMakeOutput.log".
See also "/home/ellingtonj/wave-gui/CMakeFiles/CMakeError.log".
make: *** [Makefile:2: all] Error 1

我检查了 CMakeLists.txt 文件,实际上有一个 cmake_minimum_required 行(它特别说“cmake_minimum_required (VERSION 2.8)”)。

编辑 4:下面的用户建议我可能没有安装 gcc/g++。所以我用this tutorial来安装gcc。现在我收到错误 2。进度! make 命令的输出如下:

mkdir -p build && cd build && cmake .. && make
-- The CXX compiler identification is GNU 8.3.1
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Creating program 'wave-gui' with sources:
--    main.cpp
--    app.cpp
--    core.cpp
--    ui.cpp
--    data.cpp
CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 3.11)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/ellingtonj/wave-gui
make[1]: Entering directory '/home/ellingtonj/wave-gui/build'
make[1]: *** No targets specified and no makefile found.  Stop.
make[1]: Leaving directory '/home/ellingtonj/wave-gui/build'
make: *** [Makefile:2: all] Error 2

在任何人说之前,是的,目录中有一个makefile。这是我正在工作的目录的 ls 输出:

build  CMakeCache.txt  cmake_install.cmake  external  main      README.md
cmake  CMakeFiles      CMakeLists.txt       LICENSE   Makefile  src

编辑5:我重命名了“Makefile”,因为它正在寻找“makefile”并且它有点工作。我收到一条新的错误消息,这很好。有点。输出如下:

-- Creating program 'wave-gui' with sources:
--    main.cpp
--    app.cpp
--    core.cpp
--    ui.cpp
--    data.cpp
CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 3.11)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/ellingtonj/wave-gui
Scanning dependencies of target wave-gui
[ 16%] Building CXX object CMakeFiles/wave-gui.dir/main.o
/home/ellingtonj/wave-gui/main/main.cpp:10:10: fatal error: cg_config.h: No such file or directory
 #include "cg_config.h"
          ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/wave-gui.dir/build.make:63: CMakeFiles/wave-gui.dir/main.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/wave-gui.dir/all] Error 2
make: *** [makefile:130: all] Error 2

编辑 6(?):我的问题发生了很大变化,以至于我认为应该创建一个新线程来更准确地反映我正在处理的问题。 This thread is located here.

【问题讨论】:

"cmake: command not found" 表示你还没有安装cmake。 cmake 安装在您的$PATH 中未列出的目录中,因此您的shell 找不到它。检查您的变量 (echo $PATH) 以确保 cmake 可访问。 如果您更清楚自己使用的是什么操作系统,我们将为您提供极大的帮助。如果您使用的是 GNU/Linux,那么您自己编译 cmake 只是您不必做的大量工作:cmake 已经可用于您的系统。你只需要让你的包管理器安装它。如果你有 CentOS,那么像 sudo yum install cmake 这样的东西就可以了。如果你有 Debian 或 Ubuntu,那么像 sudo apt install cmake 这样的东西就可以了。这将安装它并将其放在可能已经在您的 PATH 上的系统目录中。 但是提示:如果您无法在 shell 提示符下键入命令并找到它,那么 make 也找不到它。 Make 没有关于你的 shell 所没有的东西的神奇知识。只要您在 shell 提示符下键入 cmake 时出现“找不到命令”,那么无论您遵循什么指令,它都还没有完全可用。 "运行 make 命令输出错误。" - 请显示该输出CMakeError.log 的内容不能替代该输出。 (但是,我怀疑您根本没有安装 gcc/g++。) 【参考方案1】:

您需要先安装 CMake,安装 CMake 的方法有多种,具体取决于您的平台。您可以从here 获取二进制文件。

【讨论】:

据我所知,我已经安装了cmake。我是通过本教程 gist.github.com/1duo/38af1abd68a2c7fe5087532ab968574e 进行的(我更新了所有文件名和内容以反映当前版本的 cmake)。

以上是关于使用 make 命令时出现错误“make: [Makefile:2: all] Error 127”的主要内容,如果未能解决你的问题,请参考以下文章

linux 下make 时出现如下错误,怎么办?

在 Windows 10 的 ROS 中使用 catkin_make 时出现问题

运行 make 迁移时出现 Django 关系错误

安装cygwin中的make时出现了一下错误,应该怎么办啊,求大神解决!

为啥在 scikit-learn 中使用 make_pipeline 时出现“管道的最后一步”错误?

为 c++ 构建 nana 时出现“make”错误