首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单目总捕获编译过程错误: Makefile:83:目标'CMakeFiles/mylib.dir/all‘的配方失败

单目总捕获编译过程错误: Makefile:83:目标'CMakeFiles/mylib.dir/all‘的配方失败
EN

Stack Overflow用户
提问于 2020-03-10 08:04:15
回答 1查看 92关注 0票数 3

我正在尝试使用这个repo:

https://github.com/CMU-Perceptual-Computing-Lab/MonocularTotalCapture

以下是我安装的包:

代码语言:javascript
复制
ffmpeg
Python 2.7.12 (with TensorFlow 1.5.0, OpenCV, Matplotlib, packages installed with pip3)
openCV 4.2.0
cmake = 3.5.1
OpenCV 2.4.13 (compiled from source with CUDA 9.0, CUDNN 7.0)
Ceres-Solver 1.13.0 (with SuiteSparse)
OpenGL, GLUT, GLEW
libigl https://github.com/libigl/libigl
wget
OpenPose
eigen3, version 3.3.7
Boost version: 1.58.0
GNU 5.4.0

不幸的是,我在最后得到了一个错误,我不知道如何修复。

代码语言:javascript
复制
-- Build files have been written to: /home/ziom/Scrivania/MonocularTotalCapture/FitAdam/build

mario@ziom-Z87-HD3:/home/ziom/Scrivania/MonocularTotalCapture/FitAdam/build# make -j12

/home/ziom/Scrivania/MonocularTotalCapture/FitAdam/src/AdamFastCost.cpp: In member function ‘void AdamFullCost::SparseRegress(const Eigen::SparseMatrix<double, 0>&, const double*, const double*, const double*, const double*, double*, double*, double*, double*) const’:
/home/ziom/Scrivania/MonocularTotalCapture/FitAdam/src/AdamFastCost.cpp:1200:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int ic = 0; ic < total_vertex.size(); ic++)
^
/home/ziom/Scrivania/MonocularTotalCapture/FitAdam/src/AdamFastCost.cpp:1225:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int ic = 0; ic < total_vertex.size(); ic++)
^
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mylib.dir/all' failed
make[1]: *** [CMakeFiles/MYLIB.dir/all] Errore 2
Makefile:83: recipe for target 'CMakeFiles/mylib.dir/all' failed
make: *** [all] Errore 2
EN

回答 1

Stack Overflow用户

发布于 2020-03-11 09:12:14

我开始在评论中输入对此的回应,但它太长了……所以我只做一个答案。

你得到的显然是两个警告,但你却失败了,出现了两个错误。这就是-Werror所做的。现在,您对-Wno-error所做的操作应该是有效的,但是如果后面跟着-Werror,那么它可能会被覆盖。例如,如果我和gcc构建了一个简单的程序,如下所示:

代码语言:javascript
复制
gcc -Wno-error -Werror test.c

-Werror命令已覆盖-Wno-error命令。我刚刚看了那个项目的CMakeLists.txt文件,没有看到任何提到-Werror的地方。因为默认情况下它是关闭的,所以它一定在那里的某个地方。下面是来自该项目的CMakeLists.txt文件的一段代码:

代码语言:javascript
复制
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic -Wall -Wextra")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")

我在想,可以为${OpenMP_C_FLAGS}${OpenMP_CXX_Flags}设置-Werror。要测试这一点,可以使用cmake的message函数。在CMAKE_CXX_FLAGS赋值后添加以下行:

代码语言:javascript
复制
message("CFlags: ${CMAKE_C_FLAGS} CXXFlags: ${CMAKE_CXX_FLAGS}")

我的理论是你会在那里的某个地方找到一个-Werror。如果是这种情况,只需在CMakeLists.txt中的这两行(8和10)的末尾抛出-Wno-error

代码语言:javascript
复制
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} -Wno-error")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -Wno-error")

跟踪-Wno-error将覆盖其中的任何-Werror。可能有一个更纯粹的cmake解决方案来处理这个问题,但我不是cmake专家。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60609893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档