解决windeployqt打包exe的“VCINSTALLDIR is not set“问题

    今天在使用windeployqt部署qt的.exe文件时, 出现如下错误:

windeployqt HelloQt.exe
解决windeployqt打包exe的“VCINSTALLDIR is not set“问题_第1张图片
图(1) 报"VCINSTALLDIR路径"找不到

    出现这种情况的原因是:VCINSTALLDIR环境没有配置,需要把Visual Studio的编译路径:

## 1) 社区版VS的编译路径
C:\Program Files (x86)\Microsoft Visual Studio\2005\Community\VC;
C:\Program Files (x86)\Microsoft Visual Studio\2008\Community\VC;
C:\Program Files (x86)\Microsoft Visual Studio\2010\Community\VC;
C:\Program Files (x86)\Microsoft Visual Studio\2013\Community\VC;
C:\Program Files (x86)\Microsoft Visual Studio\2015\Community\VC;
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC;
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC;
C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC;

## 2) 专业版VS的编译路径
C:\Program Files (x86)\Microsoft Visual Studio 8.0\VC
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC

## 3) 企业版VS的编译路径
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC

    都加到这个VCINSTALLDIR变量里。若一台电脑里安装了多个VS,比如安装VS2013、VS2015、VS2017、VS2019等,则用英文的;分号,把这些路径连在一起,如下:

VCINSTALLDIR = C:\Program Files (x86)\Microsoft Visual Studio\2013\Community\VC;C:\Program Files (x86)\Microsoft Visual Studio\2015\Community\VC;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC;

    这里以VS2019 Community版本(即VS2019社区版)为例,进行说明。

1 设置VCINSTALLDIR环境

    右击【我的电脑】–》属性 --》高级环境变量 --》用户变量 --》【新建】–》
    变量名:VCINSTALLDIR
    变量值:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC

VCINSTALLDIR = C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC
解决windeployqt打包exe的“VCINSTALLDIR is not set“问题_第2张图片
图(2) 添加VCINSTALLDIR环境

2 重启电脑

    设置环境变量后,都需要重启电脑,才生效。
    按Alt+F4, 选择"重启"下拉框,即可重启电脑。

3 附录

windeployqt的4种版本

    Qt的安装目录包含windeploy.exe打包工具,它根据编译器种类:mingw、msvc,和系统位数: 32位、64位,具体细分为4种:mingw_32,mingw_64、msvc_32、msvc_64,如下:

## 1) mingw 32(即 g++ 32)
D:\Qt\Qt5.14.2\5.14.2\mingw73\bin

## 2) mingw 64(即 g++ 64)
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin


## 3) msvc 32位版本(即VS c++ 32)
D:\Qt\Qt5.14.2\5.14.2\msvc2017\bin

## 4) msvc 64位版本(即VS c++ 64)
D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin
解决windeployqt打包exe的“VCINSTALLDIR is not set“问题_第3张图片
图(3) 64位的windeployqt.exe

若开发工具使用的是Visual studio+ qt-addin-msvc + qt-opensouce,则使用msvc版本:

  • 比如 VS2013 + qt-vsaddin-msvc2013-2.2.0.vsix + qt-opensource-windows-x86-5.14.2.exe
  • 比如 VS2019 + qt-vsaddin-msvc2019-2.7.1.vsix + qt-opensource-windows-x86-5.4.1.exe


若开发工具使用的是纯qt-opensouce,则使用mingw版本:

  • 比如 qt-creator-win-opensource-2.3.0.exe
  • 比如 qt-creator-win-opensource-4.1.0.exe
解决windeployqt打包exe的“VCINSTALLDIR is not set“问题_第4张图片
图(4) 根据编译器类型,来选择对应的windeployqt.exe

4 参考文献

【1】 windeployqt打包mingw版本的exe
【2】 windeployqt详细打包与裁剪

你可能感兴趣的:(QT,C++,visual,studio,windeployqt,打包)