项目场景:
提示:这里简述项目相关背景:
OpenCV 在vscode配置中遇到的问题
(CMakeLists配置)
问题描述
链接错误 (LNK2019):之后遇到链接错误,表明在链接阶段找不到 cv::imshow 函数的实现。
原因分析:
因为没有正确链接 OpenCV 库
解决方案:
根据构建配置(调试或发布)手动设置 OpenCV 库的路径:
OpenCV_LIBS_DEBUG: 设置调试版本库文件的路径,这里使用 opencv_world480d.lib(带 d 表示调试版本);OpenCV_LIBS_RELEASE: 设置发布版本库文件的路径,这里使用 opencv_world480.lib(无 d 表示发布版本);target_link_libraries 命令将库文件链接到可执行目标(${PROJECT_NAME},即 ObjectDetection)。根据构建配置,链接不同的 OpenCV 库,可解决问题。
下面为完整代码
cmake_minimum_required(VERSION 3.10)
project(ObjectDetection)
# 指定 OpenCV 的根目录
set(OpenCV_DIR "D:/Program Files/opencv/build")
# 手动设置 OpenCV 的包含路径
set(OpenCV_INCLUDE_DIRS "${OpenCV_DIR}/include")
# 添加头文件路径
include_directories(${OpenCV_INCLUDE_DIRS})
# 创建可执行文件
add_executable(${PROJECT_NAME} src/Main.cpp)
# 检查 CMAKE_CONFIGURATION_TYPES 和 CMAKE_BUILD_TYPE
if(CMAKE_CONFIGURATION_TYPES)
# 多配置生成器
set(OpenCV_LIBS_DEBUG "${OpenCV_DIR}/x64/vc16/lib/opencv_world480d.lib")
set(OpenCV_LIBS_RELEASE "${OpenCV_DIR}/x64/vc16/lib/opencv_world480.lib")
target_link_libraries(${PROJECT_NAME}
debug ${OpenCV_LIBS_DEBUG}
optimized ${OpenCV_LIBS_RELEASE}
)
endif()