网站后台打不开的原因,重庆seo代理,wordpress构建企业网站,小程序制作用华网天下优惠文章目录 前言opencv环境配置一、opencv库获取的两种方式二、qmake和cmake配置2.1、 qmake2.2、cmake2.2.1、引入opencv示例 三、qt与opencv对应关系四、问题 前言
我的软件环境#xff0c;写在前面
Windows10QT5.12.12VS2017OpenCV4.5.4
opencv环境配置
一、opencv库获取… 文章目录 前言opencv环境配置一、opencv库获取的两种方式二、qmake和cmake配置2.1、 qmake2.2、cmake2.2.1、引入opencv示例 三、qt与opencv对应关系四、问题 前言
我的软件环境写在前面
Windows10QT5.12.12VS2017OpenCV4.5.4
opencv环境配置
一、opencv库获取的两种方式
直接下载编译好的库 最简单版本无需自己编译但是要注意opencv和VS的版本对应关系
参考Windows上Qt配置OpenCV(最简单版本无需自己编译-避坑必看)
源码编译
参考Windows下Visual Studio 编译OpenCV详细教程win10vs2017opencv4.5.2)OpenCV最新版特别适合无法科学上网的童鞋们
二、qmake和cmake配置
2.1、 qmake
引入外部库 两种方式参考详解Qt添加外部库
2.2、cmake
2.2.1、引入opencv示例
cmake_minimum_required(VERSION 3.5)
project(commandset_cmake LANGUAGES CXX)# 检查是否使用 MSVC 编译器
if(MSVC)# 添加 /utf-8 编译选项add_compile_options(/utf-8)
endif()# 设置C标准
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# 查找Qt5包
find_package(Qt5 COMPONENTS Core Gui WebEngineWidgets WebSockets Sql MultimediaWidgets Widgets REQUIRED)# 包含子项目
add_subdirectory(model)
add_subdirectory(view)
add_subdirectory(utilities)set(OpenCV_DIR D:/OpenCV/OpenCV4.5.4/opencv/build)
find_package(OpenCV REQUIRED)# 包含 OpenCV 头文件目录
include_directories(${OpenCV_INCLUDE_DIRS}${OpenCV_DIR}/include
)
# 设置可执行文件的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build)
# 添加可执行文件
add_executable(${PROJECT_NAME} ${ALL_SOURCES}mainwindow.hmainwindow.cppmain.cpp)
# 链接Qt5模块
target_link_libraries(commandset_cmake PRIVATEQt5::CoreQt5::GuiQt5::WebEngineWidgetsQt5::WebSocketsQt5::SqlQt5::MultimediaWidgets${OpenCV_LIBS} # 关联OpenCV库
)
# 添加资源文件
set(RESOURCES res.qrc)
qt5_add_resources(QRC_SOURCES ${RESOURCES})# 将资源文件添加到可执行文件
target_sources(${PROJECT_NAME} PRIVATE ${QRC_SOURCES})
三、qt与opencv对应关系
VC版本号VS对应版本vc6VC6.0vc7VS2002vc7.1VS2003vc8VS2005vc9VS2008vc10VS2010vc11VS2012vc12VS2013vc13VS2014vc14VS2015vc15VS2017vc16VS2019
四、问题
LNK2019 无法解析的外部符号 void __cdecl cv::error(int,class std::basic_stringchar,struct std::char_traitschar,class std::allocatorchar const ,char const *,char const *,int) (?errorcvYAXHAEBV?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdPEBD1HZ)函数 public: class cv::Size_int __cdecl cv::MatSize::operator()(void)const (??RMatSizecvQEBA?AV?$Size_H1XZ) 中引用了该符号 5.1 F:\Cuda Projects\5.1\5.1\kernel.cu.obj 1
LNK2019 无法解析的外部符号 class cv::debug_build_guard::_InputOutputArray const __cdecl cv::noArray(void) (?noArraycvYAAEBV_InputOutputArraydebug_build_guard1XZ)函数 main 中引用了该符号 5.1 F:\Cuda Projects\5.1\5.1\kernel.cu.obj 1
LNK2019 无法解析的外部符号 public: __cdecl cv::Mat::Mat(void) (??0MatcvQEAAXZ)函数 public: __cdecl cv::MatExpr::operator class cv::Mat(void)const (??BMatExprcvQEBA?AVMat1XZ) 中引用了该符号 5.1 F:\Cuda Projects\5.1\5.1\kernel.cu.obj 1
LNK2019 无法解析的外部符号 public: __cdecl cv::Mat::~Mat(void) (??1MatcvQEAAXZ)函数 main 中引用了该符号 5.1 F:\Cuda Projects\5.1\5.1\kernel.cu.obj 1
......
如果你的qt程序opencv库配置都没问题报这个错的原因就是库版本的问题查看opencv库中build下的x64文件夹下是vc14、vc15还是vc16这很重要参考LNK2019 无法解析的外部符号 “void __cdecl cv::error(int,class std::basic_stringchar,struct std::…