乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Qt5 在win7上發(fā)布 & 打包依賴dll生成exe方法

       feifeima2008 2014-04-05
       

      Qt5 在win7上發(fā)布 & 打包依賴dll生成exe方法

      分類: Qt 軟件 2102人閱讀 評(píng)論(0) 收藏 舉報(bào)

      目錄(?)[+]

      轉(zhuǎn)自:http://www./blog/qt-5%E7%A8%8B%E5%BA%8F%E5%9C%A8windows%E4%B8%8A%E7%9A%84%E5%8F%91%E5%B8%83/

      http://blog.163.com/qimo601@126/blog/static/1582209320132291718389/


      最近做了個(gè)qt的程序,但是發(fā)布程序比較困難,因?yàn)閝t5有著比較多的dll,如下兩篇詳述了qt dll依賴庫(kù),以及如何查詢自己工程所用的dll及打包發(fā)布的方法。


      QT 5的依賴鏈接庫(kù)變得更多了,摸索許久,又查閱了一些資料,總結(jié)出以下QT 5程序所依賴的庫(kù)。

      一、依賴庫(kù)一覽

      1.QT模塊庫(kù)

      1
      2
      3
      4
      Qt5Core.dll      #QT核心庫(kù)
      Qt5Gui.dll       #QT Gui庫(kù)
      Qt5Widgets.dll   #QT Widgets庫(kù),QT 5中GUI程序基本都需要此dll
      #還有其他程序用到的Qt5XXX.dll

      2.ICU(International Component for Unicode,Unicode工具)依賴庫(kù)

      1
      2
      3
      icudt49.dll     
      icuin49.dll    
      icuuc49.dll   

      3.QT插件庫(kù),Qt新增,有點(diǎn)坑爹,路徑必須正確

      1
      2
      3
      4
      5
      6
      # 根據(jù)不同的程序,需要不同的插件庫(kù)
      #例如 QT_DIR/plugins/*/*.dll
      # 需要將 platforms/*.dll,accessible/*.dll的文件結(jié)構(gòu)保留
      # 放在你所編譯的程序所在目錄
      plugins/platforms/qwindows.dll
      plugins/accessible/qtaccessiblewidgets.dll

      4.EGL依賴庫(kù),為OpenGL,OpenGL es提供接口

      1
      2
      libEGL.dll
      libGLESv2.dll

      5.mingw依賴庫(kù)(msvc編譯則無(wú)需這些庫(kù))

      1
      2
      3
      libgcc_s_sjlj-1.dll
      libstdc++-6.dll
      libwinpthread-1.dll

      6.VC運(yùn)行庫(kù)(mingw編譯則無(wú)需這些庫(kù))

      1
      2
      msvcr110.dll(對(duì)應(yīng)VS2012)
      msvcp110.dll

      二、文件結(jié)構(gòu)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      --platforms
             --qwindows.dll
             --*.dll
      --accessible
             --qtaccessiblewidgets.dll
             --*.dll
      --(other plugin folder)
             --*.dll
      --yourApp.exe
      --Qt5Core.dll
      --Qt5Gui.dll     
      --Qt5Widgets.dll
      --icudt49.dll     
      --icuin49.dll    
      --icuuc49.dll
      --libEGL.dll
      --libGLESv2.dll
      --libgcc_s_sjlj-1.dll(mingw)
      --libstdc++-6.dll(mingw)
      --libwinpthread-1.dll(mingw)
      --msvcr110.dll(msvc)
      --msvcp110.dll(msvc)

      三、總結(jié)

      說(shuō)實(shí)話,QT 5雖然有了ICU,Open GL的支持,還有c++11的支持,但是由于依賴的DLL實(shí)在是太多,著實(shí)有點(diǎn)不太方便。一個(gè)mingw編譯的qt gui程序,光是依賴dll就有30-50M的依賴庫(kù),確實(shí)很不爽啊。不過(guò)7z壓縮后有10M左右,還可以接受



      Qt靜態(tài)編譯鏈接生成的exe文件,不需依賴七大姑八大姨的一堆dll,可以獨(dú)立運(yùn)行,發(fā)布很方便。但絕大多數(shù)用的都是Qt開(kāi)源版本,如果用靜態(tài)鏈接,會(huì)有些限制。那有沒(méi)有辦法即能享受靜態(tài)編譯的方便,又不受開(kāi)源許可的限制呢?方法之一,就是用動(dòng)態(tài)編譯,然后把exe和需要的dll整合成一個(gè)文件,問(wèn)題就解決了。
      具體步驟:
      一,先動(dòng)態(tài)編譯鏈接,生成exe文件
      二,找到依賴的dll文件
             這里,我們可以用Process Explore來(lái)獲取所依賴的dll文件
            下載:
             http://pan.baidu.com/share/link?shareid=419262&uk=2701984065
             打開(kāi)procexp.exe,通過(guò)菜單View==》Lower Pane View==》DLLs  勾選,顯示dll窗口

              這里,我們以test.exe為例,
              在Qt環(huán)境下,將exe運(yùn)行起來(lái),在ProcessExplor中,找到就可以找到test.exe,選中,在下面就看到依賴的dll了。

             系統(tǒng)目錄下的,一般不用關(guān)心,按Path排序,看Qt目錄及mingw目錄下的,將這些dll拷貝出來(lái),單獨(dú)放到一個(gè)目錄下。
      三,打包
             打包工具,這里選用Enigma Virtual Box,
             下載:
              http://pan.baidu.com/share/link?shareid=419263&uk=2701984065
             安裝,運(yùn)行

             Enter Input File Name中,選擇exe
             Enter Output File Name,輸出文件名稱
             點(diǎn)Add按鈕,將前面準(zhǔn)備好的dll文件,添加進(jìn)來(lái)
             點(diǎn)Files Options,勾選Enable Files Virtualization和Compress files,OK
             最后,點(diǎn)Process,大告成。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多