QT打包(有些電腦 缺少的vc庫文件list)

發佈方式   

    Qt發佈的時候,通常使用兩種方式:

   (1)靜態編譯

   (2)動態編譯

    靜態編譯:把相關聯的庫一併引入可執行程序,雖然發佈簡單,但可執行程序較大。。。

    動態編譯:相關聯的庫,以dll的形式引用,不被包含進可執行程序,發佈不方便,但可執行程序較小。。。

    靜態發佈雖然不需要較多的dll,發佈簡單、方便,但是往往會牽扯到授權問題(詳情請查看Qt LGPL授權),動態發佈則可以避免。。。如果附帶了Qt的dll,就相當於發佈了Qt的dll,而這些庫是屬於Qt的,這足以保證使用者知道程序使用了LGPL版本的Qt(這部分還有待探討)。

 

查找依賴項

1、檢測可執行程序依賴模塊

    下載工具:Dependency Walker

    打開可執行程序,檢測依賴項

Qt之打包發佈(NSIS詳解)
    檢測完成之後,將所需依賴庫拷貝進去。。。再次進行檢測,反覆進行。

 

2、常用依賴庫

(1)Qt模塊庫

    Qt5Cored.dll

    Qt5Guid.dll

    Qt5Widgetsd.dll

(2)ICU依賴庫

    icudt51.dll

    icuin51.dll

    icuuc51.dll

(3)EGL依賴庫

    libEGLd.dll

    libGLESv2d.dll

(4)插件庫(Qt安裝目錄下即可找到D:\Software\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms)

    圖片支持庫:imageformats

    音頻、視頻支持庫:mediaservice

    平臺支持庫:platforms

    等等。。。

    注意:查找對應的插件文件夾,粘貼到安裝目錄(一定要保持目錄結構,例如“platforms/***.dll”),詳細結構見打包發佈準備的文件組織結構。    

(5)VS運行時庫(在VS安裝目錄下即可找到D:\Software\Microsoft Visual Studio\VC\redist)

    msvcp100d.dll

    msvcr100d.dll

 

    注意:發佈程序的時候注意版本(Debug/Release)

    如果是Debug版本的則是.前面帶d的(Qt5Cored.dll、Qt5Guid.dll、Qt5Widgetsd.dll)

    如果是Release版本的則是.前面不帶d的(Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll)

    

    以上是我所用到的依賴庫,基本可以解決問題,包括:

    Qt之打包發佈(NSIS詳解)

 

關於NSIS

1、NSIS簡介

(1)NSIS是什麼?

    一款免費的Win32安裝、卸載系統!

(2)NSIS有什麼特點?

    腳本簡潔高效、系統開銷小,進行安裝、卸載、設置、解壓文件也不在話下,幾乎可以做所有的事情。

 

2、工具

    NSIS Edit + NSIS

 

3、使用方式

    腳本嚮導 + 修改代碼 = 個性化安裝包

 

準備文件

    以下是我即將打包的所有文件,安裝包目錄結構(包括:可執行程序、插件庫、運行時庫、授權文件、卸載程序圖標等等!)如下圖所示:

Qt之打包發佈(NSIS詳解)

1、利用嚮導製作安裝包:

Qt之打包發佈(NSIS詳解)

 

2、填寫應用程序基本信息

 

Qt之打包發佈(NSIS詳解)

 

3、指定安裝程序所用選項

    注意:這裏選擇語言爲SimpChinese

Qt之打包發佈(NSIS詳解)

 

4、設置應用程序安裝目錄與授權文件

 

Qt之打包發佈(NSIS詳解)

 

5、指定應用程序文件

 

Qt之打包發佈(NSIS詳解)

 

6、指定創建應用程序圖標

 

Qt之打包發佈(NSIS詳解)

 

7、選擇安裝程序完成後運行的動作

 

Qt之打包發佈(NSIS詳解)

 

8、指定接觸安裝程序屬性

 

Qt之打包發佈(NSIS詳解)

 

9、進行腳本編譯、保存

 

Qt之打包發佈(NSIS詳解)

 

10、等待編譯完成,即可運行打包後的安裝包

Qt之打包發佈(NSIS詳解)

 

    大功告成之後,即可進行安裝!

 

(1)安裝程序

 

Qt之打包發佈(NSIS詳解)

 

(2)此處顯示授權文件中的內容

 

Qt之打包發佈(NSIS詳解)

 

(3)選擇安裝目錄

 

Qt之打包發佈(NSIS詳解)

 

(4)運行程序,並顯示“自述文件”

 

Qt之打包發佈(NSIS詳解)

 

(5)運行結果

 

Qt之打包發佈(NSIS詳解)

 

去把如下運行庫拷出來放到exe路徑下,要不然去遇到運行庫錯誤,就異常尷尬了!

api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-0.dll
api-ms-win-core-file-l1-1-0.dll
api-ms-win-core-file-l1-2-0.dll
api-ms-win-core-file-l2-1-0.dll
api-ms-win-core-handle-l1-1-0.dll
api-ms-win-core-heap-l1-1-0.dll
api-ms-win-core-interlocked-l1-1-0.dll
api-ms-win-core-libraryloader-l1-1-0.dll
api-ms-win-core-localization-l1-2-0.dll
api-ms-win-core-memory-l1-1-0.dll
api-ms-win-core-namedpipe-l1-1-0.dll
api-ms-win-core-processenvironment-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-1.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-rtlsupport-l1-1-0.dll
api-ms-win-core-string-l1-1-0.dll
api-ms-win-core-synch-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-sysinfo-l1-1-0.dll
api-ms-win-core-timezone-l1-1-0.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-crt-conio-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-environment-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-multibyte-l1-1-0.dll
api-ms-win-crt-private-l1-1-0.dll
api-ms-win-crt-process-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
concrt140.dll
msvcp140.dll
ucrtbase.dll
vcruntime140.dll
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章