vs2015 + Qt5.7 动态&静态编译教程
动机
在默认情况下,用QtCreator编译程序时,使用的是动态编译,这就导致编译好的程序在运行时需要另外加上相应的Qt库文件,以及一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,并且可以在一台没有开发环境的电脑上运行,那就需要使用静态编译。[1]
前期准备
下载 Qt 5.7 动态编译器 并安装 (参考链接博文第一章)
下载 Qt 5.7 静态编译器压缩包 并解压至动态编译器安装路径平行目录
下载 Qt VS AddIn 并安装
vs2015上创建Qt工程
打开 vs2015,选择 文件 -> 新建 -> 项目

选择 [模板] -> [Visual C++] -> [Qt] -> [Qt GUI Application]

为测试,接下来一路按默认项 Next 点下去,最后点 Finish 即可:

这样就用 vs2015 创建好了一个工程:

配置动态编译环境
点击 Qt VS Tools -> Qt Options

在弹出的对话框中点击 Add ,按下图选择之前安装的 Qt 动态编译器的路径并点击确定:

Default Qt/Win version 选择 msvc2015 并点击 OK

接下来选中项目,再点击 Qt VS Tools -> Qt Project Settings

配置切换至 Debug ,选择 配置属性 -> Qt Project Settings -> Qt Installation ,选择 msvc2015

点击确定。
动态编译调试
点击 本地 Windows 调试器

出现界面即为成功

配置静态编译环境
将之前下好的 Qt 静态编译器压缩包 解压至 Qt 动态编译器路径平行目录:

然后切回 vs2015项目,再次点击 Qt VS Tools -> Qt Options -> Add,与之前添加动态编译器的操作类似,再次将刚刚解压的静态编译器路径导入并点 OK

再次选中项目,点击 Qt VS Tools -> Qt Project Settings,将配置切换至 Release, Qt Installation 改为 qt5-x86-static-release

打开 配置属性 - C/C++ - 代码生成 - 运行库 选择 多线程(/MT)

打开 配置属性 - 链接器 - 输入 - 附加依赖项

将下述长串字符粘贴进去:
$(QTDIR)\lib\qtmain.lib;$(QTDIR)\lib\Qt5Widgets.lib;$(QTDIR)\plugins\platforms\qwindows.lib;winspool.lib;shlwapi.lib;rpcrt4.lib;$(QTDIR)\lib\Qt5PlatformSupport.lib;$(QTDIR)\plugins\imageformats\qdds.lib;$(QTDIR)\plugins\imageformats\qicns.lib;$(QTDIR)\plugins\imageformats\qico.lib;$(QTDIR)\plugins\imageformats\qtga.lib;$(QTDIR)\plugins\imageformats\qtiff.lib;$(QTDIR)\plugins\imageformats\qwbmp.lib;$(QTDIR)\plugins\imageformats\qwebp.lib;$(QTDIR)\lib\Qt5Gui.lib;comdlg32.lib;oleaut32.lib;imm32.lib;winmm.lib;glu32.lib;opengl32.lib;gdi32.lib;$(QTDIR)\lib\qtharfbuzzng.lib;$(QTDIR)\lib\Qt5Core.lib;kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;mpr.lib
再点击依赖项右边的向下箭头,选择 编辑

在弹出的对话框中勾选 从父级或项目默认设置继承 后确定:

静态编译发布
回到项目界面,将编译模式切换至 Release

再点击 生成 -> 重新生成解决方案

编译成功截图如下:

去项目目录下的 Release 文件夹中取出 .exe 发布文件即可


浙公网安备 33010602011771号