Qt執行時需要載入外掛,這個是執行時動態載入,不是直接連結,ldd看不到的,你去Qt目錄/版本號/plugins裡面能夠找到。如果無法載入,會透過qWarning在stderr輸出錯誤資訊,然後直接退出。
釋出時,把需要的外掛連著它的目錄一起複製到可執行程式的目錄下即可。
一般必備的是platforms外掛,其他外掛根據你程式碼裡用到的Qt模組選配,imageformats/iconengines/sqldrivers比較常用。
比如你沒用到特殊的圖片格式/圖示格式,也沒用到資料庫引擎,那麼只需要把platforms目錄複製到可執行程式目錄,然後保留裡面和你釋出平臺對應的動態庫即可。
Qt有個Qt installer framework,用線上安裝板可以下載,可執行程式在Qt/tools目錄下,那裡面也有自動打包工具,windows上叫windeployqt,linux不清楚,因為我不用這個工具——它會把上述所有依賴全部準備好,包括關聯的整個外掛目錄。但如我所說,外掛目錄下並不是所有動態庫都需要帶上。
Qt執行時需要載入外掛,這個是執行時動態載入,不是直接連結,ldd看不到的,你去Qt目錄/版本號/plugins裡面能夠找到。如果無法載入,會透過qWarning在stderr輸出錯誤資訊,然後直接退出。
釋出時,把需要的外掛連著它的目錄一起複製到可執行程式的目錄下即可。
一般必備的是platforms外掛,其他外掛根據你程式碼裡用到的Qt模組選配,imageformats/iconengines/sqldrivers比較常用。
比如你沒用到特殊的圖片格式/圖示格式,也沒用到資料庫引擎,那麼只需要把platforms目錄複製到可執行程式目錄,然後保留裡面和你釋出平臺對應的動態庫即可。
Qt有個Qt installer framework,用線上安裝板可以下載,可執行程式在Qt/tools目錄下,那裡面也有自動打包工具,windows上叫windeployqt,linux不清楚,因為我不用這個工具——它會把上述所有依賴全部準備好,包括關聯的整個外掛目錄。但如我所說,外掛目錄下並不是所有動態庫都需要帶上。