当前位置: 首页 > article >正文

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()


http://www.kler.cn/a/596347.html

相关文章:

  • 【风信】邮件系统的介绍和使用。
  • Stable Diffusion lora训练(一)
  • 如何防御大模型中的 Prompt 攻击?
  • [蓝桥杯 2023 省 B] 子串简写
  • 深入理解 Spring 框架中的 IOC 容器
  • 六种开源智能体通信协议对比:MCP、ANP、Agora、agents.json、LMOS、AITP
  • 第十六届蓝桥杯模拟二
  • C++面试准备一(常考)
  • JVM垃圾回收笔记01
  • 冒排排序相关
  • 2025年03月10日人慧前端面试(外包滴滴)
  • vue实现图形验证码
  • 过滤器的执行顺序
  • Go语言常用框架及工具介绍
  • 汽车免拆诊断案例 | 2024 款路虎发现运动版车无法正常识别智能钥匙
  • 八股Spring
  • 适合用户快速开发项目的PHP框架有哪些?
  • SAP-ABAP:SAP生产业务(PP模块)全流程深度解析
  • Spring Boot02(数据库、Redis)02---java八股
  • yolo模型学习笔记——3——yolov3相比与yolov2的优点