用Visual Studio进行Qt开发的Cmake模板

使用Visual Studio进行Qt开发的时候,我们可以借用Cmake的moc功能和相应对Qt的支持生成VS工程。

文件组织

Root
│  cmake.sh              // cmake执行脚本
│  CMakeLists.txt        // 根目录cmake文件
│  README.md 
│  text.txt
├─bin                    // 生成物存放目录
├─form
│      mainwindow.ui      // ui文件目录
├─include                // 头文件目录
│      mainwindow.h    
├─resource               // 资源文件目录
│      resource.qrc
└─source                 // CPP等源文件目录
        main.cpp          
        mainwindow.cpp

Cmake模版 

Cmake模版如下,执行cmake命令即可生成visual studio工程

#指定cmake的最小版本号
CMAKE_MINIMUM_REQUIRED(VERSION 3.16)

#指定项目名称
PROJECT(Test LANGUAGES CXX)

# SET(QT5_DIR "D:\\Qt\\5.15.2\\msvc2019\\lib\\cmake\\Qt5")

#指定Qt路径和启用当前目录(按需设置)
# SET(CMAKE_PREFIX_PATH ${QT_PATH}/lib/cmake)
SET(CMAKE_PREFIX_PATH D:/Qt/5.15.2/msvc2019/lib/cmake)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)

SET(PROJECT_DIR "./")

SET(CMAKE_AUTOMOC ON)

#引入Qt库
FIND_PACKAGE(Qt5Widgets REQUIRED)
FIND_PACKAGE(Qt5Gui REQUIRED)
FIND_PACKAGE(Qt5Core REQUIRED)
# FIND_PACKAGE(Qt5Sql REQUIRED)
# FIND_PACKAGE(Qt5Network REQUIRED)
# FIND_PACKAGE(Qt5Concurrent REQUIRED)

#添加预编译宏
ADD_DEFINITIONS(-DTORRENT_LIBRARY)
ADD_DEFINITIONS(-DNO_FREETYPE)
ADD_DEFINITIONS(-DUNICODE -D_UNICODE)
ADD_DEFINITIONS(-DHCPP_LEGACY_API)

#将各种文件归类到指定变量
FILE(GLOB_RECURSE HEADER_FILES "include/*.h")
FILE(GLOB_RECURSE SRC_FILES "source/*.cpp")
FILE(GLOB_RECURSE FORMS "*form/*.ui")
FILE(GLOB_RECURSE RESOURCE_FILES "resource/*.qrc")
#FILE(GLOB TS_FILES "*.ts")
FILE(GLOB MOC_FILES "moc_*.cpp")

#将ui文件编译成ui_*.h文件
IF(FORMS)
	QT5_WRAP_UI(FORMS_UIC ${FORMS})
ENDIF()

#将包含Q_OBJECT的头文件编译成moc_*.cpp文件
QT5_WRAP_CPP(MOC_FILES ${HEADER_FILES})

#启用qrc资源文件
QT5_ADD_RESOURCES(RES_FILES resource/resource.qrc)

#启用当前头文件目录
SET(CMAKE_INCLUDE_CURRENT_DIR ON)

#将ui文件和生成文件整理在一个文件夹中
SOURCE_GROUP("Form Files" FILES ${FORMS})
#将qrc资源文件整理在一个文件夹中
SOURCE_GROUP("resource" FILES ${RESOURCE_FILES})
#查找当前目录下所有的.h和.cpp文件
SOURCE_GROUP("include" FILES ${HEADER_FILES})
SOURCE_GROUP("source" FILES ${SRC_FILES})
#翻译文件
#SOURCE_GROUP("Translation" FILES ${TS_FILES})

#将MOC,UI,QRC的中间生成文件编译进EXE中
SOURCE_GROUP("Generated" FILES ${MOC_FILES} ${FORMS_UIC} ${RES_FILES} ${TS_FILES})

#引入库目录路径
LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/bin)

#将所有文件编译成EXE,并设置以WIN32的方式运行
ADD_EXECUTABLE(${PROJECT_NAME} WIN32 ${HEADER_FILES} ${SRC_FILES} ${MOC_FILES} ${FORMS_UIC} ${RESOURCE_FILES} ${RES_FILES})

#设置EXE文件的输出目录
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/../bin)

#引入库目录头文件
INCLUDE_DIRECTORIES(${AUTOGEN_BUILD_DIR})
INCLUDE_DIRECTORIES(${PROJECT_DIR}/include)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
#INCLUDE_DIRECTORIES(../Define ../Algorithm)

#链接以上lib库
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PROJECT_LIBRARIES})

#加载静态LIB
#TARGET_LINK_LIBRARIES(${PROJECT_NAME}
#	Algorithm.lib
#)

#启用Qt的库模块
TARGET_LINK_LIBRARIES( ${PROJECT_NAME} Qt5::Widgets Qt5::Core Qt5::Gui)
QT5_USE_MODULES(${PROJECT_NAME} Widgets Core Gui)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Visual Studio是一款集成开发环境(IDE),用于开发各种类型的应用程序。Qt是一个跨平台的应用程序开发框架,可以用于开发图形界面和非图形界面的应用程序。CMake是一个跨平台的构建工具,用于自动生成项目构建脚本。在Visual Studio中使用QtCMake可以实现方便的项目管理和构建。 在给定的引用中,demomain.cpp是一个使用Qt编写的主函数,其中创建了一个QApplication对象和一个MainWindow对象,并显示了MainWindow。在main函数的末尾,调用了app.exec()来启动应用程序的事件循环。\[1\] CMakeLists.txt是一个用于配置CMake构建系统的文件。在修改CMakeLists.txt后,需要在build文件夹下执行cmake ..命令来重新生成构建脚本。然后可以在Visual Studio中选择生成项目或生成安装包。生成项目会在build目录下生成一个Release文件夹,其中包含HelloWorld.exe及其所需的依赖文件。生成安装包会在build目录下生成一个安装包。\[3\] 综上所述,Visual Studio可以与QtCMake一起使用,以便更方便地开发和构建应用程序。 #### 引用[.reference_title] - *1* *2* [使用CMake+Visual Studio构建Qt程序(一)](https://blog.csdn.net/qq_41961619/article/details/106288798)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用CMake+Visual Studio构建Qt程序(二)](https://blog.csdn.net/qq_41961619/article/details/106308212)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值