QT+Opencv 程序打包發佈(超級詳細版+常見錯誤解決)

QT+Opencv 程序打包發佈(超級詳細版+常見錯誤解決)

我的上一篇文章基於Qt+Opencv寫了一個閾值提取工具,在打包發佈過程中了很多坑,所以寫下這篇博文幫助大家在學習的過程中有效避坑節省時間。
發佈過程中一共要用到3個工具:

  1. windeployqt(這是qt自帶的一個依賴項添加工具)
  2. == hap-depends==(一個幾百k的小工具,用來查看你的程序用到了那些依賴項)
  3. Enigma Virtual Box(一個打包工具,用來將程序和所有依賴項打包)
    準備好這些工具後就可以開始了:

第一步:在Qt creator中對項目進行Release,獲取 ***.exe(release版可執行文件)

用Qt creator 打開你的項目文件,然後release,生產release版的可執行文件,同時查看你的編譯工具(這一步很重要,我就是忽略了這一步才浪費了很多時間,這也是很多csdn博主忽略的一步),後續需要用統一編譯器纔不會出錯。在這裏插入圖片描述

第二步:利用windeployqt在文件夾中添加依賴項

  1. 首先在桌面上新建一個文件夾,注意名字不要用中文,本文文件命名test
  2. 將你的release裏面的==.exe==文件還有你程序裏面用到的圖片文件夾放在test中
    在這裏插入圖片描述
  3. 從Windows圖標找到Qt軟件,如下圖所示,本人電腦裏只有1個編譯工具,所以直接打開使用,如果你電腦裏面有很多版本的話一定要選擇和第一步3裏面一樣的編譯器在這裏插入圖片描述
  4. 打開後進入你前面文件夾,然後用windeployqt 進行編譯,進入對應文件後輸入:
// An highlighted block
windeplotqt untitled2.exe

如下圖所示:在這裏插入圖片描述
運行後的文件件添加了很多依賴項,如下圖所示:
在這裏插入圖片描述
到這裏如果你沒有引用其他的依賴性的話(比如opencv等),那你文件夾裏面得.exe文件可以運行了。

第三步:利用hap-depends查找你程序用到的依賴項,然後添加在test中

直接把.exe 拖到hap-depends中即可(在hap-depends中只顯示依賴項的一級目錄),如下圖所示:
在這裏插入圖片描述
可以看到我們使用了opencv的兩個依賴項,分別是libopencv_core249.dlllibopencv_imgproc249.dll。下一步把這些依賴從你的opncvbuild(也就是你在對Qt配置opencv時用cmake對opencv編譯之後形成的文件)在bin中將這兩個依賴項加入到test中就可以了,如下圖所示:
在這裏插入圖片描述
到這裏,就可以測試.exe能不能運行了,如果你按照上面步驟一步步來的話,肯定是沒有問題的。test裏面的 .exe就可以直接運行了。

第四步:利用Enigma Virtual Box對文件夾進行打包(就是把整個文件夾打包成一個.exe文件)

打開Enigma Virtual Box:
在這裏插入圖片描述

  1. 點集Browse選擇test裏面的.exe文件
  2. 點擊Add將整個test文件加進去
  3. 點擊Files Options
    在這裏插入圖片描述
  4. 點擊 Process,運行完成後點擊run就可以運行程序了,同時你的test文件夾裏面多了一個untitled2_boxed.exe文件,這個就可以直接運行了。
    在這裏插入圖片描述
    到這裏就大功告成了,如果對你有用的話,不要吝惜送我一個贊哦。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章