I just completed the installation of OpenCV 3 in my Mac (running OS X 10.12) after a long search of various installation methods. However, when I tried to compile a sample C++ program, the following error was resulted:
Undefined symbols for architecture x86_64: "cv::imread(cv::String const&, int)", referenced from: _main in DisplayImage-6f69a1.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [DisplayImage] Error 1
So, once again, the search is on. After searching for the entire morning for solutions, I came across many “solution posts” that did not work!
Finally, I reached a post that mentioned “imread has been moved in the opencv_imgcodecs library.” and should “Try to add -lopencv_imgcodecs to your linker flags.” This solved my problem.
This case made me wonder how many people who posted “incorrect solution” had actually tried to replicate the error and actually solved the problem? Or did they just “think” what may be the problem and provide “guesses” about the possible solutions?
I am not saying that try ones best to provide information to the other is a bad thing. But providing too many “unproven” information in the web not only not able to help, it also makes the searching for true solution more difficult!