轉自:https://blog.csdn.net/ch_liu23/article/details/93602193
一、用QT自帶工具整合相關dll
1.在release模式下編譯工程生成exe文件
2.將該exe文件單獨拿出拷貝到任意一個新建的文件夾,文件夾名隨意
3.打開windows下的cmd或者shell,在當前窗口下執行打包命令:
QT自帶的是一個查找整合相關dll的工具,同時還會將相關的dll拷貝到當前文件夾下,命令爲windeployqt,但是由於qt安裝目錄下有幾個這個名字的exe,所以要選對,本文基於vs2015下編譯的,故而選擇的是C:\Qt\5.12.3\msvc2015_64\bin\windeployqt.exe
命令執行的方式是:C:\Qt\5.12.3\msvc2015_64\bin\windeployqt.exe 你的執行文件名.exe
執行成功會如下圖:
在該文件夾下就會生成相應的dll
二、用Dependency waker查找相關依賴的dll
Qt的工具只能找到qt相關的dll,有時候我們發佈出去的話,對方電腦未必裝了opencv或者vs2015,因此還有些dll需要手動拷貝到剛纔的目錄下。可以用Dependency waker來查找當前exe涉及哪些dll,Dependency waker官網下載地址,或者百度雲鏈接: dependency waker百度雲鏈接 提取碼: 9mqe 。用該工具能夠看到所有的相關的dll。我的是win10+vs2015,發佈出去的時候,總結了下容易缺少這三個dll,concrt140.dll,msvcp140.dll,vcruntime140.dll,可以在這裏下鏈接: 常缺失的dll百度雲下載路徑 提取碼: m4v4。如果還缺少其他dll,推薦這個網站【https://cn.dll-files.com/】裏面一搜就有,非常全
三、用Enigma Virtual Box將所有dll封裝到exe文件中
其實到上一步已經發佈一個壓縮包給別人用了,如果你跟我一樣有強迫症,覺得還是給別人一個exe直接可執行會爽一點,就做這一步。
先下載這個軟件,鏈接: Eniga Virtual box百度雲下載 提取碼: z8vf 。
安裝好後打開,輸入exe文件,封包程序對應的會自動生成名字,任意改
然後點擊下方的增加文件,這一步是需要把相關dll增加進去的,注意目錄層級
點擊執行封包就會自動生成,如下:
這樣就生成一個exe文件,單獨給出這個exe文件就可以給別人用了