qt打包相關

目錄

 

1. 打包命令 -windeployqt

2.enigma virtual box將庫和exe文件打包成一個可執行文件。

2.1 採用 Enigma Virtual Box 打包成exe

2.2 無法定位程序輸入點 動態鏈接庫問題處理及原因分析


 

  • 1. 打包命令 -windeployqt

 qt自帶的windeployqt。

新創建一個目錄,將待發布的exe文件放入此目錄,而後運行windeployqt。運行完畢後,在此目錄下包括exe及其依賴的庫文件。

可能提示命令沒找到,修改環境變量中的PATH,增加qt的編譯工具路徑下的bin目錄即可,實例:在PATH環境變量中增加C:\Qt\Qt5.13.2\5.13.2\mingw73_64\bin

打包後的文件夾示例:

 

2.enigma virtual box將庫和exe文件打包成一個可執行文件。

2.1 採用 Enigma Virtual Box 打包成exe

官網地址爲:  https://www.enigmaprotector.com/en/downloads.html 來進行。

此方法在網上有很多資料,比較簡單,不再贅述。

基本界面如下:選擇qt編譯生成主程序。添加依賴的庫並保持相對路徑不變,依賴的庫由第一步中的windeployqt已經拷貝到和exe文件同一個文件夾中了。

 

  • 2.2 無法定位程序輸入點 動態鏈接庫問題處理及原因分析

打包後運行提示:

 

原因分析

在自己的磁盤搜索 此庫文件名稱 libwinpthread-1,例如我的電腦裏面C盤搜出

D盤搜出 

 

查看環境變量中path的配置,上述TDM-GCC和perl的路徑配置都在qt前面,同時在1中用windeployqt 打包時,拷貝出來的libwinpthread-1.dll的時間和tdm-gcc是一致的,都是2015/6/28 14:28,說明打包時沒有采用qt下的庫,而採用了其他庫,導致程序在運行時報錯。

將tdm-gcc卸載掉,不用了。再重新運行windeployqt,如下

提示沒有工具鏈了。我們查看path的設置,實際上qt安裝時,沒有將編譯工具的路徑添加到path中,手動添加,實例如下:

C:\Qt\Qt5.13.2\Tools\mingw730_64\bin

配置後,再次windeployqt ,可以看到庫的時間已經qt下mingw編譯工具下的庫了

而後再用virtual box打包成一個單一的exe文件,就可以正常運行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章