Cmake 错误 make: *** Makefile: 资源死锁已避免。停

Cmake Error make: *** Makefile: Resource deadlock avoided. Stop

提问人:bike 提问时间:11/15/2023 最后编辑:bike 更新时间:11/21/2023 访问量:55

问:

make[2]: *** CMakeFiles/exec.dir/compiler_depend.make: Resource deadlock avoided. Stop. 
make[1]: *** [CMakeFiles/Makefile2:84: CMakeFiles/exec.dir/all] Error 2 
make: *** [Makefile:91: all] Error 2

当我键入命令然后键入以初始化cmake时,此错误经常发生。这是我知道解决错误的唯一方法。 它可能是由 docker 容器或编译器选项 (openMP) 引起的。makecmake ..

我的环境是
M2 Macbook Pro
MacOS Sonoma

Docker 桌面 4.25.1 Ubuntu 22.04.2 LTS
cmake 3.22.1
gcc (
Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0

我正在将选项传递给 gcc。-fopenmp

CMakeLists.txt

# Set the version of CMake required
cmake_minimum_required(VERSION 3.14)

# Set the project name and the language used
project(ARModel CXX)

# Create an executable and specify the source files
add_executable(exec predict.cpp AR.cpp)

# Include path
target_include_directories(exec PUBLIC /usr/include/python3.10)

# Specify the library directory
link_directories(/usr/lib/python3.10)

# Create a shared library
add_library(cnpy SHARED "cnpy/cnpy.cpp")

# Link the libraries
target_link_libraries(exec PUBLIC python3.10 cnpy z)

# Set the linker library search policy
if(COMMAND cmake_policy)
  cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)

# Set compiler options
set(CMAKE_NO_CACHE TRUE)
set(CMAKE_C_COMPILER "gcc")
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "-std=c++20 -O3 -fopenmp -mtune=native -march=native -I/usr/include/python3.10")

在 Makefile 中

# All Build rule for target.
CMakeFiles/exec.dir/all: CMakeFiles/cnpy.dir/all
    $(MAKE) $(MAKESILENT) -f CMakeFiles/exec.dir/build.make CMakeFiles/exec.dir/depend  
    $(MAKE) $(MAKESILENT) -f CMakeFiles/exec.dir/build.make CMakeFiles/exec.dir/build
    @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/workspaces/AR model/cpp/build/CMakeFiles" --progress-num=3,4,5,6 "Built target exec"
.PHONY : CMakeFiles/exec.dir/all
C++ GCC cmake vscode-devcontainer

评论

0赞 Tsyvarev 11/15/2023
代码中的每一行对于重现问题都是必不可少的吗?尝试删除一行,并检查在配置和生成项目时是否仍然存在错误消息。整个错误消息闻起来像是您的环境有问题,它可能与 CMake 完全无关。
0赞 bike 11/16/2023
此错误也发生在 git 中。这可能是由 devcontainer 引起的问题。(客户机操作系统和主机之间的竞争。
0赞 Tsyvarev 11/21/2023
不要通过评论发布多行错误消息。相反,编辑问题帖子并确保它包含所有相关信息。
0赞 Jesper Juhl 11/21/2023
旁注:忘了,它非常慢。改用 cmake 生成器,然后用它来构建代码 - 效率要高得多。makeninjaninja
0赞 bike 11/21/2023
我浏览了compiler_depend.make。源文件之间的依赖关系在此处指定。此错误的可能原因可能是 CMake 由于某种原因无法引用此文件。

答: 暂无答案