这个错误是程序运行时没有正确找到或加载所需的符号(cv::Mat
的构造函数),原因是在编译时链接了一个版本的 OpenCV 库,但在运行时使用了另一个版本的库。比如系统自带有opencv库,自己又在另外的位置安装了不同版本的opencv库。
解决办法,在cmake的时候指定oepncv的路径和版本。
# 设置 OpenCV 的安装路径
set(OpenCV_DIR "/path/to/opencv/build")
# 查找特定版本的 OpenCV
find_package(OpenCV 4.5.1 EXACT REQUIRED PATHS "${OpenCV_DIR}")
# 现在你可以使用找到的 OpenCV 库了
add_executable(my_program main.cpp)
target_link_libraries(my_program ${OpenCV_LIBS})