點選上方 藍字 關註我們
微信公眾號: OpenCV學堂
關註獲取更多電腦視覺與深度學習知識
引子
我用QT C++寫了一個YOLOv5模型推理演示套用,主要包括功能有:
YOLOv5+ OpenCV4.5.4DNN推理演示
YOLOv5+OpenVINO2022.1推理演示
YOLOv5+ONNXRUNTIME 推理演示
上述三個都CPU版本的推理演示,然後我最終完成GUI演示程式如下圖:
支持一些顯示選項,例如FPS計算顯示,類別顯示設定等。後來我又加上了YOLOX的推理演示,跟Faster-RCNN與Mask-RCNN的ONNXRUNTIME推理演示。
今天有個哥們想要測試程式,於是我就開始了使用QT內建的打包工具windeployqt.exe 開始了一通如猛虎操作,完成了打包!遠端發到他的沒有開發環境電腦,發現可以了,截圖如下:
打包過程
01
拷貝第三方依賴DLL檔
首先把所有依賴的dll檔全部拷貝到計畫編譯生成的release目錄下,我的release目錄是:
D:\Qt\projects\build-yolov5_demo-Desktop_Qt_5_12_12_MSVC2017_64bit-Release\release
這些DLL主要是第三方的庫,具體我的是OpenCV4.5.4相關DLL、OpenVINO支持必須的相關DLL檔,ONNXRUNTIEM相關的DLL檔,一通猛拷貝,就可以啦!
02
windeployqt.exe生成打包
這個時候一定要清楚你的編譯是基於MINGW的編譯器還是VS的編譯器,這點太重要了,以我的為例:在QT的安裝目錄下面有兩個目錄
mingw73_64
msvc2017_64
如果工程是MINGW編譯的一定要選擇 第一個目錄下的windeployqt.exe,如果是VS編譯的,比如我是VS2017的,就一定要選擇第二個目錄下的windeployqt.exe 工具來打包,否則打包完以後就無法執行!
確定了windeployqt.exe工具之後,開啟cmd到windeployqt.exe工具所在目錄,如下圖:
然後執行命令列:
windeployqt.exe D:\Qt\projects\build-yolov5_demo-Desktop_Qt_5_12_12_MSVC2017_64bit-Release\release\yolov5_demo.exe –release
這句話的意思是打包成release的,因為我工程構建是基於release的,這點也太重要了,你的工程構建跟釋出打包必須debug-debug 或者release-release,不然肯定無法啟動。
其中--release表示打包為release模式。
成功執行之後顯現如下:
這樣就成功了!
03
zip打包釋出
刪去release目錄下所有的cpp檔跟編譯生成的中間檔,然後選擇全部檔zip打包就好啦,這樣就完成了打包。
最後特別說明 :
打包OpenVINO2022的時候除了需要把那些DLL檔全部拷貝過去,一定記得把 plugin.xml 檔( 來自安裝好的OpenVINO2022資料夾下 )也拷貝過去,不然就會一直無法啟動程式!!!
就是上圖紅框的檔,打包之後,我本機執行:
系統化學習直接掃碼檢視
推薦閱讀