cmakelist中添加opencv
版本选择
qt的msvc,版本2019
opencv版本
4.5.3
配置了环境变量
x64下的v14中的bin
配置头文件
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}",
"d:\\QT\\6.5.3\\msvc2019_64\\include\\QtWidgets",
"d:\\QT\\6.5.3\\msvc2019_64\\include\\QtGui",
"d:\\QT\\6.5.3\\msvc2019_64\\include\\QtCore",
"D:/QT/6.5.3/msvc2019_64/include",
"${workspaceFolder}/build/Desktop_Qt_6_5_3_MSVC2019_64bit-Debug/tg-gy_autogen/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
]
}
],
"version": 4
}
cmakelist配置
cmake_minimum_required(VERSION 3.5)
project(tg-gy VERSION 0.1 LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 查找 Qt
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
# 设置项目源文件
set(PROJECT_SOURCES
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
)
# 检查 Qt 版本并创建目标
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
qt_add_executable(tg-gy
MANUAL_FINALIZATION
${PROJECT_SOURCES}
)
else()
if(ANDROID)
add_library(tg-gy SHARED
${PROJECT_SOURCES}
)
else()
add_executable(tg-gy
${PROJECT_SOURCES}
)
endif()
endif()
# 添加 OpenCV 头文件路径
target_include_directories(tg-gy PRIVATE "D:/OPENCV4.11/opencv/build/include")
# 添加 OpenCV 库路径
target_link_libraries(tg-gy PRIVATE
"D:/OPENCV4.11/opencv/build/x64/vc14/lib/opencv_world453d.lib"
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Gui
)
# 设置目标属性
if(${QT_VERSION} VERSION_LESS 6.1.0)
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.tg-gy)
endif()
set_target_properties(tg-gy PROPERTIES
${BUNDLE_ID_OPTION}
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
# 安装目标
include(GNUInstallDirs)
install(TARGETS tg-gy
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
# 如果是 Qt 6,调用 qt_finalize_executable
if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(tg-gy)
endif()