CMake Qt 配置

  1. CMake 模块
    • ConfigCxx.cmake
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD ON)
set(CMAKE_CXX_EXTENSIONS ON)
set(CMAKE_CXX_STANDARD_REQUIRED ON)


IF(WIN32)
	set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
    set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
    set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
ENDIF()
  • ConfigDll.cmake



set(OUTPUT_DIR ${PROJECT_SOURCE_DIR}/../${PREFIX_DIR})

message(STATUS "[${PROJECT_NAME}]" OUTPUT_DIR:${OUTPUT_DIR})

set_target_properties(${PROJECT_NAME} PROPERTIES
    ARCHIVE_OUTPUT_DIRECTORY_DEBUG              "${OUTPUT_DIR}"
    LIBRARY_OUTPUT_DIRECTORY_DEBUG              "${OUTPUT_DIR}"
    RUNTIME_OUTPUT_DIRECTORY_DEBUG              "${OUTPUT_DIR}"
    PDB_OUTPUT_DIRECTORY_DEBUG                "${OUTPUT_DIR}"

    ARCHIVE_OUTPUT_DIRECTORY_RELEASE             "${OUTPUT_DIR}"
    LIBRARY_OUTPUT_DIRECTORY_RELEASE             "${OUTPUT_DIR}"
    RUNTIME_OUTPUT_DIRECTORY_RELEASE             "${OUTPUT_DIR}"
    PDB_OUTPUT_DIRECTORY_RELEASE               "${OUTPUT_DIR}"
)
  • ConfigQt.cmake
#-------------------------------------------------------------------------------
set(CFG_QT_VERSION 5.15.1)
if(WIN32)
    set(QT_INSTALL_PATH "C:/Qt/${CFG_QT_VERSION}")
else()
    set(QT_INSTALL_PATH "/Applications/Qt${CFG_QT_VERSION}/${CFG_QT_VERSION}")
endif()

#-------------------------------------------------------------------------------
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

#-------------------------------------------------------------------------------
if((NOT QT_DIR) AND (NOT IS_DIRECTORY "${QT_DIR}"))
    if(WIN32)
        if(${CMAKE_CL_64})
            set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${QT_INSTALL_PATH}/msvc2019_64")
        else()
            set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${QT_INSTALL_PATH}/msvc2019")
        endif()
    elseif(APPLE)
        set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${QT_INSTALL_PATH}/clang_64")
    endif()
endif()
  • 主要CMakeLists.txt
# CMakeList.txt: 顶层 CMake 项目文件,在此处执行全局配置
# 并包含子项目。
################################## 1、最低CMake版本
cmake_minimum_required (VERSION 3.8)

set(PROJECT_NAME  FrameWork)

project (${PROJECT_NAME})


################################# 2、项目名qtCmake
project(${PROJECT_NAME} LANGUAGES CXX)

################################# 3、set模块
set(CMAKE_INCLUDE_CURRENT_DIR ON)
##################系统设置
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
    set(SYSTEM_NAME Win32)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
    set(SYSTEM_NAME MacOS)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    set(SYSTEM_NAME Linux)
endif()
message(STATUS "[${PROJECT_NAME}] " System:${SYSTEM_NAME})
##################### 操作平台设置
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
    set(BUILD_PLATFORM x64)
else()
    set(BUILD_PLATFORM x86)
endif()
message(STATUS "[${PROJECT_NAME}] BUILD_PLATFORM:${BUILD_PLATFORM}")

# default RelWithDebInfo
if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE Debug)
endif()
message(STATUS "[${PROJECT_NAME}] BUILD_TYPE:${CMAKE_BUILD_TYPE}")

##############设置路径变量参数
set(PREFIX_DIR "Build/${SYSTEM_NAME}/${BUILD_PLATFORM}/${CMAKE_BUILD_TYPE}")

message(STATUS "[${PROJECT_NAME}] PREFIX_DIR:${PREFIX_DIR}")
#######################Qt 元对象设置

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)



#######################添加配置文件
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake)

find_package(Qt5  COMPONENTS Widgets Core Gui  Quick QuickWidgets REQUIRED)

################配置C++环境
include(ConfigCXX)

include(ConfigQt)

# 设置exe生成路径。喜欢用CMAKE_CURRENT_SOURCE_DIR,指CMakeLists.txt所在的路径
# set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/)
# 设置c++语言支持
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# ################################# 4、查找依赖的Qt文件
# find_package(Qt5 COMPONENTS Widgets Core Gui REQUIRED)    

# #########################包含当前目录
# set(CMAKE_INCLUDE_CURRENT_DIR ON)

message(STATUS "PROJECT_SOURCE_DIR:"${PROJECT_SOURCE_DIR})



# ################################添加子项目文件

add_subdirectory(Base)

add_subdirectory(UI)

add_subdirectory(MainWindow)





# #################################DependsOn  依赖
 add_dependencies(UI Base)
 add_dependencies(MainWindow UI Base)




  • 子CMakeLists.txt
cmake_minimum_required (VERSION 3.8)

project ("UI")
#######################���������ļ�
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../CMake)



set(CMAKE_INCLUDE_CURRENT_DIR ON)

################################# 4������������Qt�ļ�
find_package(Qt5  COMPONENTS Widgets Core Gui  Quick QuickWidgets REQUIRED)   




set(INC_LIST 
	 ./inc/Export_Dll.h
     ./inc/BaseWidget.h
	 ./inc/FramelessWindow.hpp
	 ./inc/BaseQmlWidget.h
	 
	 )


set(SRC_LIST 
 ./src/BaseWidget.cpp
 ./src/BaseQmlWidget.cpp
 
 )

set(RES_LIST 
	./res/Control.qrc
	./res/qml.qrc
)

include_directories(${PROJECT_SOURCE_DIR}/inc)

# include_directories(${PROJECT_SOURCE_DIR}/../Base/inc)
add_definitions(-DDLL_EXPORTS)
# add_compile_definitions(DLL_EXPORTS)


add_library(${PROJECT_NAME} SHARED ${INC_LIST}  ${SRC_LIST} ${RES_LIST})

target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/../Base/inc)

include(configDll)

target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Core 
	Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets  Qt${QT_VERSION_MAJOR}::Quick  Qt${QT_VERSION_MAJOR}::QuickWidgets)



target_link_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/../${PREFIX_DIR})


target_link_libraries(${PROJECT_NAME} PRIVATE Base.lib)


  • 该文件供使用Cmake 搭建Qt项目框架
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用CMake配置OpenCV时,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了QtCMake,并且已经下载了OpenCV的安装包。 2. 打开你的Qt项目,并在项目根目录下创建一个CMakeLists.txt文件。 3. 在CMakeLists.txt文件中,使用find_package命令来查找OpenCV库。这个命令会自动找到OpenCVConfig.cmake文件并导入所需的变量。例如: ``` find_package(OpenCV REQUIRED) ``` 4. 使用include_directories命令将OpenCV的头文件目录添加到你的项目中。这样,你就可以在代码中使用OpenCV的函数和类了。例如: ``` include_directories(${OpenCV_INCLUDE_DIRS}) ``` 5. 在你的项目中,使用target_link_libraries命令将OpenCV的库文件链接到你的可执行文件中。例如: ``` target_link_libraries(your_project_name ${OpenCV_LIBS}) ``` 6. 最后,使用CMake来生成你的项目文件。你可以使用命令行或者QtCMake插件来完成这个步骤。 通过以上步骤,你就可以成功地使用CMake配置OpenCV库来进行Qt开发了。引用\[1\]中的OpenCVConfig.cmake文件会为你导出所需的变量,使得你可以方便地使用OpenCV的功能。而引用\[2\]中提到,对于初学者或者不需要使用OpenCV_contrib库的情况,建议直接下载OpenCV的安装包来使用,而不是自己编译。这样可以避免一些下载库的问题和编译过程中的困扰。然而,如果你需要使用OpenCV_contrib库或者有特定的需求,那么自己编译可能是更好的选择。 #### 引用[.reference_title] - *1* *2* [windows10下Qt环境OpenCV配置CMake环境】](https://blog.csdn.net/weixin_40583088/article/details/127467176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值