1、qt
查找项目中使用到的qt动态链接库;
步骤如下
①打开项目使用的windeployqt工具(qt自带的工具);
②进入到文件夹所在目录;使用 cd 命令
③使用命令:windeployqt Name.exe(在目标文件夹所在目录下执行该命令)
但是由于我的QT使用的是MSVC编译器,会用到一些VC的库,使用qt的命令行时会提示我
warning:Cannot find Visual Studio installation directory,VCINSTALLDIR is not set.
解决方案1
win+R,输入QT安装目录下windeployqt.exe的路径,然后空格,再加上项目Release的路径。
我的是:C:\Qt\Qt5.13.1\5.13.1\msvc2015_64\bin\windeployqt.exe D:\GIICS\qtReleaseDemo\x64\Release\qtReleaseDemo.exe,供参考。
然后会有这个warning,这个在中间很难被发现,要注意!
找到msvcp140d.dll(我是VS2015,所以是140),复制它的路径添加到环境变量中。我的路径是C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\debug_nonredist\x64\Microsoft.VC140.DebugCRT\msvcp140d.dll,添加环境变量时,到VC就可以了,后面的不要。
关闭cmd重新打开(一定要先关闭之前打开的,然后重新打开),输入第三步的路径,C:\Qt\Qt5.13.1\5.13.1\msvc2015_64\bin\windeployqt.exe D:\GIICS\qtReleaseDemo\x64\Release\qtReleaseDemo.exe,回车就行了。
看到Release文件夹下多出了QT的很多dll和vcredist_x64.exe就行了。把这个文件夹放到一个全新的计算机也能跑起来,不过得在计算机上先安装图中的vcredist.exe。
应用windeploy添加环境变量时尽量只有一个 ,当两个时你用windeployqt +可执行名时 打包可能会出错,如你使用的时msvc2019_64建立的Qt项目
你打包时可以使用的是mingw_64打包的文件。移植到其他电脑上时就会报错。
所以你可以留有一个环境变量的路径 记得重启
方法二
-
首先将配置改为Release。
-
接下来重新生成项目。
-
然后从工程目录/x64/Release/中便可找到生成的exe文件。
-
若想运行该exe文件,需将其需要的各个dll文件与其放在同一文件夹中。
这里主要需要qt的一些dll文件,可在qt安装目录里msvc2017_64/bin文件夹中找到。
使用windeployqt这个命令应该都知道,
将release版本exe复制拷贝到一个单独目录;
4.2打开QT下MSVC 2017控制台,切换到刚才exe所在目录;
4.3再使用 Qt 自带的 windeployqt 工具命令,其语法格式为:
windeployqt 可执行程序名
4.4可以看到windeployqt 工具已经将程序所依赖的qt环境已经复制到当前目录。
还有就是进入VS的安装路径
C:\ProgramFiles(x86)\MicrosoftVisualStudio14.0\Common7\IDE\RemoteDebugger\x64
你是x64开发的就选x64,要不然就选x86.
去把如下运行库拷出来放到exe路径下,要不然去遇到运行库错误,就异常尴尬了!
api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-0.dll
api-ms-win-core-file-l1-1-0.dll
api-ms-win-core-file-l1-2-0.dll
api-ms-win-core-file-l2-1-0.dll
api-ms-win-core-handle-l1-1-0.dll
api-ms-win-core-heap-l1-1-0.dll
api-ms-win-core-interlocked-l1-1-0.dll
api-ms-win-core-libraryloader-l1-1-0.dll
api-ms-win-core-localization-l1-2-0.dll
api-ms-win-core-memory-l1-1-0.dll
api-ms-win-core-namedpipe-l1-1-0.dll
api-ms-win-core-processenvironment-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-1.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-rtlsupport-l1-1-0.dll
api-ms-win-core-string-l1-1-0.dll
api-ms-win-core-synch-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-sysinfo-l1-1-0.dll
api-ms-win-core-timezone-l1-1-0.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-crt-conio-l1-1-0.dll
api-ms-w