Ubuntu/Eclipse CDT Tutorial Build Errors
I am working through installing OpenCV on Ubuntu 15.10 following the OpenCV Tutorial at
http://docs.opencv.org/3.0-last-rst/d...
and I am running into include and library linking errors. For the include errors, I find that I need to explicitly include from the opencv2 directories. But, the problem arises that I cannot link. Please take a look at the screenshots of the link error and of the project properties window. Any help would be greatly appreciated.
In case you can't read the link error in the screenshot, it is:
02:10:26 **** Incremental Build of configuration Release for project DisplayImage ****
make all Building target: DisplayImage Invoking: GCC C++ Linker g++ -L/usr/local/lib -o "DisplayImage" ./src/DisplayImage.o -lopencv_core -lopencv_imgproc -lopencv_highgui /usr/bin/ld: ./src/DisplayImage.o: undefined reference to symbol '_ZN2cv6imreadERKNS_6StringEi' makefile:45: recipe for target 'DisplayImage' failed /usr/local/lib/libopencv_imgcodecs.so.3.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: * [DisplayImage] Error 1
02:10:26 Build Finished (took 114ms)
UPDATE: (Answer, but I cannot submit my own answer yet. Here are the two screenshots of what the source code should look like and what the library settings should be. )
as the error says, you need to add
-lopencv_imcodecs
to your linker cmdlinePlease, don't include *_c.h header files, use .hpp header files instead. For that example, you only need
opencv2/core.hpp
andopencv2/highgui.hpp
Yes, I figured that out some time after I posted the question. However, the tutorial is missing that one library in the list of libraries to include. Perhaps someone could update the tutorial? it is otherwise quite helpful.
From the tutorial, the list of libraries to add to the search are
opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_features2d opencv_calib3d opencv_objdetect opencv_contrib opencv_legacy opencv_flann
yes, you're right, the tutorial still shows the outdated 2.4 library list.
for opencv3, it will need removing opencv_legacyand opencv_contrib, and adding opencv_imcodecs and opencv_videoio
(if you could come up with more accurate screenshots, we could try to update the tutorial ;)
I am going to attempt to add the two screenshots as an edit to the original question - I can't add them here. I also cannot answer my own question for another two days, the website tells me. If you want to, write your response as an answer to the question.