我已經comipled與GPU朱古力禁用,則openpose編譯告訴未定義參考CV :: VideoCapture :: VideoCapture(CV ::字符串常量和)
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++的蟒蛇)工作,所以爲什麼不能openpose找到opencv?
謝謝,我已經降級到3.1,和uncommet:CPU_ONLY:= 1 OPENCV_VERSION:= 3的OpenCV相關的錯誤了,但是這些錯誤: ._release/LIB/libopenpose.so:未定義參考'運算:: renderPartAffinityFieldGpu (float *,op :: PoseModel,cv :: Size_ const&,float const *,cv :: Size_ const&,float,int,float)'仍然存在。 –
我認爲它與openpose有關,我想你必須通過檢查openpose的哪個版本的opencv並降級或升級到新版本來做同樣的過程,這些類型的錯誤表明openpose實現了一些功能,在你目前的opencv中是不可用的。你也可以禁用/註釋#USE CUDNN以防你使用CPU的時候,因爲當你啓用它時...一些函數會做一些總是失敗的cuda斷言檢查,因爲你沒有使用CUDA – Eliethesaiyan
謝謝,我想這是由於他們不知道CUDA已被禁用,導致這些錯誤的實例彙編,所以他們仍然嘗試使用CUDA,而我只是不知道如何從彙編中刪除這些示例 –