qt-项目部署(某些情况下编译器中运行异常的话可以使用命令windeployqt 程序名在安装的qt dos命令下补全部分依赖库在运行项目或发布)
Qt5Cored.dll和Qt5Core.dll文件分別用于Qt軟件的Debug版和Release版。
? ? 通常會有兩個Qt5Core.dll文件,分別位于Qti安裝目錄下的“Qt5.1.0\5.1.0\mingw48_32\bin”和“\Qt5.1.0\Tools\QtCreator\bin”兩個目錄中。其中“Qt5.1.0\5.1.0\mingw48_32\bin”目錄下才是Qt項目運行時所需的庫。
但是,有時候在運行Release版項目時,卻提示沒喲找到Qt5Cored.dll。這是由于在編譯Release版時,錯誤的鏈接到了Debug版的庫上。這種情況主要發生在使用了第三方軟件庫的時候,在編譯第三方軟件庫時,Debug版本庫鏈接到Qt的Qt5Cored.dll,而Release版鏈接到Qt5Core.dll,如果在編譯Release版項目時錯誤的鏈接了第三方軟件庫的Debug版,則也會間接的鏈接Debug版的相關支持庫(如Qt5Cored.dll),因此在運行項目時提示需要相關的Debug版支持庫。
舉個例子:在編譯Release版項目時,工程文件中有“#LIBS += D:/Qwt-6.1.0/lib/qwtd.dll”(這是QWT庫,QWT庫需要QT庫的支持),則在運行時提示“找不到Qt5Cored.dll文件”,這時將其修改為“#LIBS += D:/Qwt-6.1.0/lib/qwt.dll”則解決問題。
? ? 類似的,在運行Release版軟件時,如果提示需要Debug版庫,則可查看是否是在鏈接時,直接或間接的鏈接到了Debug版庫上。
/*****************************************QT 程序打包的方法
01前言
最近在弄畢業設計時,因為要把程序放到不同電腦的環境去測試,而又不可能每一臺電腦都安裝了QT的開發環境,于是乎有了將程序打包的想法。這里用來的包的工具是windeployqt,是QT官方自帶的打包軟件(不需要自己下載安裝)。
02具體操作
(1)首先,在QT軟件內打開自己的一個項目,用在左下角選擇Releases方法來重新編譯一次。
經過編譯之后,我們可以在編譯路徑上看到一個Releases的文件夾
當我們進去文件夾,再進入Releases文件夾后,找到.exe文件,這里以Chat_wiget為例
把.exe文件復制到一個新創建的文件夾內部
(2)在開始菜單出搜索QT的命令窗口
①打開命令行之后,接著輸入命令行,cd /d 路徑(指的是需要打包的exe程序目錄,就是剛才拷貝出來的exe程序所在的目錄),此處 cd 命令是把地址定位到exe程序所在的位置,也就是相關依賴包需要放置的地方。
②輸入如下命令行:windeployqt 程序名(如windeployqt char_widgt.exe ) 敲擊回車。這一步操作是將所需的庫文件全都拷貝到exe程序的當前文件:
此時我們可以看到文件夾內部已經自己把相關的依賴庫加載進去了
此時我們就可以直接點解exe文件運行程序。
03總結
1、通過Releases編譯得到exe文件
2、把exe文件復制到一個新的文件夾
3、用windeployqt把相關的依賴庫復制到文件夾里面
04補充
1、編譯之后可能會找不到Releases文件,此時我們就要進去設置查看編譯的文件在哪
?
2、如果想要直接打包成exe文件,就要需要Enigma Virtual Box的軟件幫助,再次進行一次打包的操作即可(具體方法不在這里論述)
?
總結
以上是生活随笔為你收集整理的qt-项目部署(某些情况下编译器中运行异常的话可以使用命令windeployqt 程序名在安装的qt dos命令下补全部分依赖库在运行项目或发布)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker 方式安装 Nexus 私服
- 下一篇: Map 集合循环、遍历的 四 种方式