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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Qt 程序在 windows 下的发布

發(fā)布時間:2025/4/16 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt 程序在 windows 下的发布 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這個問題,其實 Qt 的?manual?中解釋的已經(jīng)比較清楚了。下面是我根據(jù)自己的理解和實驗后寫的東西,希望比Qt文檔容易理解一點。

另外:你可能對?Qt 插件學習(一)?感興趣。如果需要制作安裝程序,請訪問?NSIS學習筆記(以Qt4程序打包為例)

下面不涉及靜態(tài)編譯(靜態(tài)編譯可以看看這兒),只包含動態(tài)編譯(也就是Qt默認的情況),主要又分 mingw 和 msvc 兩種情況:

Mingw

首先,我們需要生成 release 模式的可執(zhí)行程序(不少同學抱怨,一個小小程序卻需要100多M的動態(tài)庫,就是因為用的debug)

qmake
mingw32-make release

而后將 可執(zhí)行文件 與 需要的動態(tài)庫放到同一個文件夾下,一般需要

  • myprogram.exe
  • mingwm10.dll
  • libgcc_s_dw2-1.dll
  • qtcore4.dll
  • qtgui4.dll

有同學抱怨,動態(tài)庫拷過去以后,程序報錯?無法定位程序輸入點于動態(tài)鏈接庫QtCore4.dll上?,這一般是由于系統(tǒng)中裝了多套Qt的運行庫,而你拷貝的不是Qt安裝目錄下的庫所導致的。比如,當安裝的是Qt SDK時,很容易導致這個問題,因為里面的Qt是mingw編譯的,但里面的QtCreator是msvc編譯的,所以不少人不小心就吧QtCreator帶的Qt運行庫拷過來了。

如果你不需要其他的插件,那么就可以發(fā)布程序了,然而不少同學抱怨?jpg、gif、bmp 等格式的圖片無法顯示,這是因為 Qt 原生支持 png,而其他格式需要通過插件支持(插件在 %QTDIR%/plugins\imageformats 目錄下)

你只需將需要的插件拷貝到可執(zhí)行程序所在的目錄下的 imageformats 目錄下即可

  • myprogram.exe
  • imageformats\qjpeg4.dll
  • imageformats\qgif4.dll
  • ...

同樣,如果你的程序需要gb2312、gbk編碼支持,那么需要將 %QTDIR%\plugins\codecs 目錄下的相應插件拷貝到可執(zhí)行程序所在目錄下的 codecs 目錄下

  • myprogram.exe
  • codecs\qcncodecs4.dll
  • ...

建議:不妨多看看Qt安裝目錄下的plugins目錄,熟悉這些插件分別是做什么的,你發(fā)布的程序需要哪些。

現(xiàn)在,程序可以發(fā)布了。你現(xiàn)在也可以通過 nsis 來制作一個安裝包(NSIS學習筆記(以Qt4程序打包為例))。

msvc

如果用的VS2008 而不是mingw,發(fā)布的過程其實基本是一樣的。

首先生成 release 模式的 可執(zhí)行文件

qmake
nmake release

而后準備需要的動態(tài)庫與插件

  • myprogram.exe
  • qtcore4.dll
  • qtgui4.dll
  • imageformats\*4.dll
  • ...

因為是vc編譯的,所以不需要mingw的 mingwm10.dll libgcc_s_dw2-1.dll ,取代他們的是VC2008的C\C++ 運行庫:

  • MSVCR90.DLL
  • MSVCP90.DLL

如果你用的Windows xp 之前的系統(tǒng),那么只要將這兩個運行庫和可執(zhí)行程序放于同一個目錄即可。

但對于Windows xp (包括)之后的系統(tǒng),這樣做并不會正常工作,程序會報告:由于應用程序配置不正確,應用程序未能啟動。這個問題有點復雜,其實解決方法很簡單,只需在用戶機器上安裝1M多的VS2008可再發(fā)行包?vcredist_x86.exe?即可

該包會將運行庫安裝到 window系統(tǒng)目錄下的 WinSxS 目錄下,對xp之前的系統(tǒng),還會將運行庫同時安裝到path路徑下的目錄內。其實如果用戶裝過其他人編寫的VC2008的程序,機器上很應該已經(jīng)裝過該包了。

或許你要問,如果不想安裝 可再發(fā)行包怎么辦,比如就想把需要dll一塊和程序打包,我們可以這么做:

將文件夾 (如果你用的VS2008 express,該文件夾不存在)

<Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC90.CRT

直接復制到可執(zhí)行程序所在目錄

  • myprogram.exe
  • Microsoft.VC90.CRT\*

注意:

  • 如果用戶機器上已經(jīng)安裝了可再發(fā)行包,程序將永遠不會使用Microsoft.VC90.CRT下的庫。
  • 當采用這種方法時,如果同時發(fā)布插件(包括圖片插件等),那么插件編譯時必須:

CONFIG-=embed_manifest_dll

使得生成的插件中不嵌入manifest文件,否則插件不被程序識別(其實也可以識別,只要將 Microsoft.VC90.CRT 拷貝一份和插件放到同一文件夾即可,當然這種方式很不好,如果插件分布在幾個目錄下,要放置Microsoft.VC90.CRT的很多副本)。

工具

1. 一定要記住:?Dependency Walker?是你的好幫手,它會告訴你你的 exe 和 dll需要哪些庫,以及它加載的動態(tài)庫都在哪個文件夾內 等

2. 最好準備一個進程查看的工具,比如微軟的?Process Explorer等,來查看你的程序到底加載了哪些動態(tài)庫(加載了哪些插件等)

總結

以上是生活随笔為你收集整理的Qt 程序在 windows 下的发布的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩欧美一区二区在线观看 | 超碰在线最新 | 深夜福利免费视频 | 日本草草影院 | 欧美在线高清 | 色五夜| 97国产精品人人爽人人做 | 亚洲日b视频 | 国产污污在线观看 | 麻豆av一区二区三区在线观看 | www.欧美日韩 | 国产私人影院 | 亚洲精品国产精品乱码在线观看 | exo妈妈mv在线播放高清免费 | 亚洲图片中文字幕 | 无码人妻av一区二区三区波多野 | 森林影视官网在线观看 | 欧美午夜寂寞影院 | 18视频网站在线观看 | 欧美xxxx在线 | 男人av资源 | 日韩中文免费 | 美女扒开腿男人爽桶 | 四虎视频国产精品免费 | 嫩草影院国产 | 中国一级特黄真人毛片免费观看 | 激情小说亚洲色图 | 精品久久久久亚洲 | 99视频一区| 精品久久香蕉国产线看观看亚洲 | 欧美一线天 | 青青青手机视频在线观看 | 久草视频播放 | 国产91美女视频 | 影音先锋亚洲一区 | 日韩欧美大片在线观看 | 国产一级片精品 | 日本黄色特级片 | 免费看成人毛片 | 亚洲啪啪免费视频 | 成人黄色小说在线观看 | 97久久人人超碰caoprom欧美 | 波多野结衣1区 | 国产又黄又骚 | 中文字幕资源网 | 成人免费黄色大片v266 | 亚洲图片二区 | 一区二区三区少妇 | 国产情侣呻吟对白高潮 | 色网址在线观看 | 亚洲av无码专区国产乱码不卡 | 射射av| 欧美三级电影在线观看 | 老湿机69福利区午夜x片 | 国产精品入口66mio | 就是喜欢被他干 | 亚洲精品国产一区二区 | 91福利网站| 两根大肉大捧一进一出好爽视频 | xx性欧美肥妇精品久久久久久 | 在线天堂视频 | 亚洲精品视频在线免费 | 免费观看av的网站 | 91久久人澡人人添人人爽欧美 | 茄子视频懂你更多在线观看 | 日韩毛片中文字幕 | av片在线观看免费 | 黄色成人在线观看 | 中文天堂在线观看 | 日韩美女啪啪 | 亚洲日本香蕉视频 | 人妖天堂狠狠ts人妖天堂狠狠 | 欧美aⅴ在线观看 | 国产精品夜夜嗨 | av久草| 可以看的黄色网 | 久久国产免费看 | 日韩精品视频免费播放 | 无码精品人妻一区二区三区湄公河 | 香蕉尹人网| 少妇人妻综合久久中文字幕 | 亚瑟av| 91偷拍精品一区二区三区 | 亚洲国产精彩中文乱码av | 污网站免费看 | 日本一区二区三区视频免费看 | 精品一区二区三区四区五区 | 国产精品不卡一区二区三区 | 后进极品白嫩翘臀在线视频 | 色天天综合 | 午夜成人鲁丝片午夜精品 | 精品伊人| 99久久精品日本一区二区免费 | 国产成人免费看一级大黄 | 懂色aⅴ一区二区三区免费 国产精品99在线观看 | 美妇av | 好吊妞一区二区三区 | √天堂8资源中文在线 | 91中文字幕在线播放 |