我已经在禁用 GPU 的情况下编译了 caffe,然后
cp caffe/build/Makefile openpose/Makefile.conf
运行
make all -j 6
得到这些错误:
-- Generating done
-- Build files have been written to: /path/to/caffe/build
CXX/LD -o ._release/examples/tutorial_thread/1_openpose_read_and_display.bin
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::VideoCapture(cv::String const&)'
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::set(int, double)'
._release/lib/libopenpose.so: undefined reference to `op::renderPartAffinityFieldGpu(float*, op::PoseModel, cv::Size_<int> const&, float const*, cv::Size_<int> const&, float, int, float)'
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::release()'
._release/lib/libopenpose.so: undefined reference to `op::renderBodyPartsGpu(float*, op::PoseModel, cv::Size_<int> const&, float const*, cv::Size_<int> const&, float, float)'
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::operator>>(cv::Mat&)'
找不到 opencv,我从源代码编译了最新的 opencv 3.2-dev,所有 opencv 程序(c++ 和 python)都可以工作,那么为什么 openpose 找不到 opencv?
最佳答案
Caffe 实际上识别了 opencv,这些引用是在 opencv3.2 中被丢弃的方法,但在 opencv 3.1.0 或更早版本中可用。我在安装 3.2 时遇到了同样的问题,最终降级到 3.1.0 解决了这个问题对我来说,here是安装 opencv 3.1.0 的好指南,根据
this讨论,似乎标准是支持 Ubuntu 源中可用的 opencv,我认为你现在不能通过 apt-get 安装 opencv3.2,只需要从源构建
关于opencv - openpose 编译告诉 undefined reference cv::VideoCapture::VideoCapture(cv::String const&),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44236198/