日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布)

發(fā)布時間:2023/12/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這幾天在研究Qt,首先嘗試用Qt Creator編寫一些小程序來練練手。但是,在這個過程中卻遇到了一個問題:使用Qt Creator編寫的exe程序,只能在本機運行,跑到別的電腦上就無法運行了,提示缺少各種各樣的庫。這個問題,我之前在搞VS-MFC的編程時,也遇到過,無非就是一些運行時庫的問題導致的。當時的做法時,根據程序運行時報錯所缺失的庫,一個一個手工查找和拷貝,收集全部所依賴的庫到程序目錄下,程序就可以正常運行了。因此,對于這次的情況,我原本也打算這么做。但是,無意間在一篇博客里看到,Qt的設計者其實一早就料到有這種情況發(fā)生的,所以,他們?yōu)镼t專門設計了一個發(fā)行程序時自動對依賴庫打包的工具,可以全自動為用戶完成上述工作,那可就方便多了。下面就對這個工具的用法進行介紹:

1、首先找到這個工具,這個工具叫做“windeployqt”。它一般位于Qt安裝目錄下的mingw_XX\bin目錄下,像我的目錄就在C:\ProgramData\Qt\5.8\mingw53_32\bin。

此時,建議將整個目錄直接加入系統(tǒng)環(huán)境變量,便于后續(xù)使用。

2、編譯你的程序,注意必須是release版本。debug版本的貌似不行。

3、啟動cmd,進入到你要發(fā)布的程序所在的目錄,比如我的程序放在D:\Test目錄下,就輸入”cd /d d:\test”,記住里面一定要加”/d”的參數,否則將無法進入該目錄。

4、確認你的程序是用Qt Creator哪個模式設計的,總共有2個模式,Qt Widgets Application和Qt Quick Application,不同模式下的參數命令是不一樣的:

  • 在Qt Widgets Application模式下

輸入”windeployqt hello.exe”命令,其中hello.exe是我的程序名稱。

  • Qt Quick Application模式下

輸入”windeployqt hello.exe –qmldir”命令, 其中hello.exe是我的程序名稱,qmldir是你的qml目錄,這個目錄一般位于mingwXX目錄下,像我的目錄就在C:\ProgramData\Qt\5.8\mingw53_32\qml。

5、輸入上述命令之后,Qt就會自動復制它所依賴的各個插件文件夾和 dll文件、qm文件,得到的就完整的 exe 程序發(fā)布集合,依賴關系都解決好了,可以直接發(fā)布到其他的電腦上運行。

6、要注意的是,按照上述步驟完成之后,仍有可能會提示dll缺失信息,像我就遇到了缺失的提示。不過,好在此時缺失的dll很少(我遇到的就只有3個:libwinpthread-1.dll、libstdc++-6.dll、以及l(fā)ibgcc_s_dw2-1.dll),可以手動去復制,根據我的經驗,可以直接在C:\ProgramData\Qt\5.8\mingw53_32\bin目錄下面找到這幾個dll。

7、其他未盡事項,建議大家參考以下這篇博文,介紹的非常詳細。

http://blog.csdn.net/liuyez123/article/details/50462637

8、搞定,收工!

總結

以上是生活随笔為你收集整理的如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。