我想在我的Ubuntu 16.04上安裝OpenCV3.1以便在QT5中進行開發。令人遺憾的是,由於未定義的引用(見下文),始終由源構建它。在Ubuntu 16.04上構建OpenCV 3.1失敗(未定義的參考)
我用下面的:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_OPENGL=ON -D BUILD_TIFF=ON -D WITH_VTK=ON..
,它工作正常。但構建它總是會產生這個錯誤
../../lib/libopencv_viz.so.3.1.0: undefined reference to `vtkSTLReader::New()'
../../lib/libopencv_viz.so.3.1.0: undefined reference to `vtkOBJReader::New()'
collect2: error: ld returned 1 exit status
modules/viz/CMakeFiles/opencv_test_viz.dir/build.make:232: recipe for target 'bin/opencv_test_viz' failed
make[2]: *** [bin/opencv_test_viz] Error 1
CMakeFiles/Makefile2:3358: recipe for target 'modules/viz/CMakeFiles/opencv_test_viz.dir/all' failed
make[1]: *** [modules/viz/CMakeFiles/opencv_test_viz.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
當然我GOOGLE了,並嘗試了我發現的一切。嘗試了幾個不同的cmake標誌(或者更確切地說,沒有任何),試着重新安裝libvtk5-dev,並嘗試libvtk6-dev,甚至從源代碼構建vtk7.1,因爲我假設從那裏丟失了一些東西。
我也試圖通過
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_OPENGL=ON -D BUILD_TIFF=ON -D WITH_VTK=ON -D BUILD_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/user/opencv/opencv-3.1.0/opencv_contrib/modules ..
加入opencv_contrib但已經產生以下錯誤
CMake Error at opencv_contrib/modules/text/CMakeLists.txt:22 (ocv_add_testdata): `Unknown CMake command "ocv_add_testdata".
同時請注意,我並升級/更新列出here和here的所有軟件包
所以基本上兩天後隨機嘗試所有可能的解決方案,我可以通過谷歌找到,我我現在在這裏問。 希望有人知道如何解決這個問題,謝謝!
編輯:我只得到OpenCV3.1的這些問題。我確實有一個工作OpenCV 2.4.13
這個問題似乎與VTK有關,它不會出現在您發佈的軟件包鏈接中。你可以用'-D WITH_VTK = OFF'來構建,還是安裝vtk ?.同時用'QT'和'VTK'編譯PS可能會導致併發症:http://answers.opencv.org/question/61773/vtk-support-disabled-due-to-incompatible-opencvvtkqt-combination/ – iamai