OpenCV 3.1 - 找不到opencv_contrib库

时间:2016-07-12 06:40:01

标签: python c++ opencv

我已经在这个link之后在Ubuntu上安装了带有Python 2.7的OpenCV3.1。简而言之,在构建库时,我已经通过了这个标志

cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..

已经传递了OPENCV_EXTRA_MODULES_PATH标志。然后,我想尝试使用sfm opencv_contrib中的新C++模块,但出现此错误:

/tmp/ccHDBnbF.o: In function `main': cam_motion.cpp:(.text+0x999): undefined reference to `cv::sfm::reconstruct(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_InputOutputArray const&, cv::_OutputArray const&, bool)' cam_motion.cpp:(.text+0xb5a): undefined reference to `cv::viz::Viz3d::Viz3d(cv::String const&)' cam_motion.cpp:(.text+0xba7): undefined reference to `cv::viz::Viz3d::setBackgroundColor(cv::viz::Color const&, cv::viz::Color const&)' cam_motion.cpp:(.text+0xbc0): undefined reference to `cv::viz::Viz3d::registerKeyboardCallback(void (*)(cv::viz::KeyboardEvent const&, void*), void*)' cam_motion.cpp:(.text+0xe2c): undefined reference to `cv::viz::Viz3d::wasStopped() const' cam_motion.cpp:(.text+0xeaf): undefined reference to `cv::Mat::eye(int, int, int)' cam_motion.cpp:(.text+0xfd4): undefined reference to `cv::viz::WCube::WCube(cv::Point3_<double> const&, cv::Point3_<double> const&, bool, cv::viz::Color const&)' cam_motion.cpp:(.text+0x1001): undefined reference to `cv::viz::Widget::setRenderingProperty(int, double)'

我想这是一个链接器问题。

问题是什么?我该如何解决?

1 个答案:

答案 0 :(得分:0)

您是否下载了OpenCV contrib包并将其放在指定位置?如果没有,请从here

下载

然后将其放入特定文件夹中,并在使用Cmake进行编译时,将路径(绝对路径)提供给 modules 文件夹。然后尝试再次构建它。

如果您仍然遇到任何问题,请评论相关详情。