使用cmake链接opencv静态库时出现了一些莫名其妙的报错:
这些函数链接的opencv库里都有,但是却找不到。
原因可以参考https://sundrops.blog.csdn.net/article/details/91475723
解决办法就是修改链接库顺序,如果库A依赖库B, 链接的顺序就应该写为A B, 如果相互依赖就应该为A B A或者B A B的顺序。
以上的报错是因为opencv_ximgproc中的fast_line_detector中的函数依赖于opencv_core,所以opencv_ximgproc在cmake中的顺序必须写在opencv_core前面。
所以cmake中的写法应该是:
target_link_libraries(detect_line opencv_highgui opencv_ximgproc opencv_imgproc opencv_core)