1.When OpenCV2.4.9 is not installed, the system has OpenCV2.4.8 pre-installed in /usr/lib/x86_64-linux-gnu/ and /usr/include, where there is no opencv_nonfree include files or libray files.
The following is the compiling error:
(未进行手工编译OpenCV时,安装的二进制OpenCV库不含有nonfree库,因此,编译系统找不到源文件openFABMAPcli.cpp所包含的nonfree.hpp头文件。就出现了如下所示的错误:)
2.When compiling and installing hand- compiled OpenCV2.4.9, the following linking error happened:
(在CMakeLists.txt文件中,如果不显式地指明包含nonfree库,就会出现如下所示的错误:)
3.When performing the following modification of CmakeLists.txt:
# Link against the required libraries in OpenCV >=2.2
target_link_libraries(openFABMAP ${OpenCV_LIBS} ) # original
# Link against the required libraries in OpenCV >=2.2
target_link_libraries(openFABMAP ${OpenCV_LIBS} opencv_nonfree) # revised
The error becomes like this:
libopencv_nonfree.so: undefined reference to `cv::ocl::integral(cv::ocl::oclMat const&, cv::ocl::oclMat&)’
collect2: error: ld returned 1 exit status
4.After copying the compiled OpenCV2.4.9 libray files to /usr/lib/x86_64-linux-gnu/, everything is fine.