本人使用了CLion进行C++编程。刚开始学,很多不懂,在入门Cmake中。
简单编程了一个,读取本地图像的opencv操作,用到了Mat定义;但编译代码的时候,报错如下:
这不来事了嘛???必须弄它呀
结果是,花了老长时间,也没解决。论坛上面也有很多解决思路了。
比如,1)cmake可能没链接共享库。那必须给安排
target_link_libraries( main ${OpenCV_LIBS} )
eg: 编译仍旧报错。后面尝试直接,引用论坛上推荐的共享库,libopencv_imgcodecs.so;仍旧报错。
2)cpp 缺少对应头文件。那必须得加
#include <opencv2/opencv.hpp> //need to add lib path to CMakeList.txt
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/core.hpp>
eg:头文件也加了,但还是不行。
3)cmake,要加上寻找opencv库函数。并且改为 opencv 3;(看到希望的苗头,必须得跟上阿)
find_package( OpenCV 3 REQUIRED )
eg:编译了,不行。
********************************
都分割了,那肯定有好消息了。
解决思路:将“find_package” 放到 “target_link_libraries”的前面,而不是后面。(新人,哪知道前后顺序的意义,但不断坚持摸索之下,能够排查并解决,终归是件好事)
代码如下:
在此也多谢其他博主的文章,提供了尝试的思路。大家生活愉快。