使用CMake+Visual Studio构建Qt程序(二)

在上一篇文章中,我们成功生成并执行了自己的HelloWorld,接下来将进一步完善其构建方法,使其更加方便更加自动化。同时也会介绍安装打包以及增加程序功能的方法。

本文涉及的代码已上传至github,后文会介绍使用方法。

设置CMakeLists中的变量来更改VS项目的默认设置

上篇文章结尾我们得到了一个有控制台窗口的HelloWorld程序。我们可以通过修改Visual Studio中的设置来隐藏控制台窗口。
在这里插入图片描述
在这里插入图片描述
也可以在CMakeLists.txt中添加如下内容达到相同效果:

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")

很多设置都可以通过在CMakeLists.txt中设置变量或者在执行cmake命令时添加参数来完成,如此便无需频繁的调整VS的设置。比如我们希望构建的VS项目默认编译64位的Release程序,可以在build目录下执行如下命令:

cmake -A x64 -DCMAKE_CONFIGURATION_TYPES=Release ..

其中 -A x64设置VS工程为64位,后面的参数用来设置编译模式为Release
在这里插入图片描述

编写build.bat

有没有觉得要输入那么长的命令很难记很麻烦?没关系,我们可以通过编写脚本文件来解决这个问题,在Windows中是.bat文件,通过编写和执行.bat文件,我们可以自动地执行一批命令。
在源代码根路径下编写build.bat如下:

@echo off

::delete build dir
if "%1"=="delete" goto _DEL

if not exist build md build

cd build
cmake -A x64 -DCMAKE_CONFIGURATION_TYPES=Release ..
cd ..
goto _END


:_DEL
rd build/s/q
goto _END


:_END

此后通过以下命令,便可以很方便的构建和删除项目了。

build.bat 
build.bat delete

在这里插入图片描述
这里使用git bash时360会拦截,可以通过Windows控制台执行
在这里插入图片描述

制作安装包

我们可以通过CMake很方便的制作程序的安装包。
在Windows下我们可以通过NSIS软件来制作拥有安装界面的安装包(需要先安装NSIS),这种简单的程序也可以直接打包成.tar.gz,在其他电脑上解压即可使用,大概就是免安装绿色硬盘版吧 ^_^单就这个程序来说两种包差别不大,在代码中也仅仅是一个变量值的区别。

如果要制作NSIS包,设置

set(CPACK_GENERATOR NSIS)

制作tar.gz,只需设置

set(CPACK_GENERATOR TGZ)

主要利用的是install命令和CPack模块。
在CMakeLists.txt中添加如下代码:

set(CMAKE_INSTALL_PREFIX ${
   
   PROJECT_BINARY_DIR}/installed)
set(WINDEPLOYQT_DIR F:/QT/5.10.1/msvc2017_64/bin)
#exec windeployqt automatically when build install in VS
install(CODE "execute_process(COMMAND ${
   
   WINDEPLOYQT_DIR}/windeployqt.exe 
				${
   
   PROJECT_BINARY_DIR}/Release/${
   
   PROJECT_NAME}.exe)")
install(DIRECTORY ${
   
   PROJECT_BINARY_DIR}/Release/ DESTINATION /)

set(CPACK_GENERATOR NSIS)
set(CPACK
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值