我已經成功部署了我的 Qt 應用程式,其中包含所有必要的 dll 檔案,并且運行良好。但是,一旦我添加了使用 Qt5Network 的東西,我的程式就會崩潰,并顯示“應用程式無法正確啟動 (0xc000007b)”。
我當然將 Qt5Network.dll 復制到了我的部署目錄,并且我使用了一個依賴遍歷器,并發現與添加“網路”部分之前的依賴相比,有一個新的依賴:libgcc_s_seh-1.dll
我也復制了,還是一樣的錯誤。
我了解到 Qt Network 需要 OpenSSL,所以我找到了 libeay32 和 ssleay32,并將它們也復制到了我的部署目錄中。
錯誤是一樣的。如果我取消對 Qt5Network 的要求,我的程式運行良好,并且它使用許多其他模塊,如 Printsupport、Serialport 等,沒有問題。
我在 Qt 5.9 和 5.15 上試過。
uj5u.com熱心網友回復:
官方 Qt 二進制檔案(在您的情況下為 Qt 網路)將嘗試在第一次需要時加載 OpenSLL,在運行時,而不是在您首次啟動應用程式時,請參閱此處的 SSL 部分。我相信這就是依賴 walker 和 windeployt 無法識別 OpenSSL 的原因,因為它們只能識別加載時依賴關系。
您似乎試圖從不兼容的版本捆綁 OpenSSL 二進制檔案。從 Qt 5.12.4 開始,受支持的 OpenSSL 版本為 1.1.1,例如,請參見此處。如果您從 v1.1.1 中找到二進制檔案并將其捆綁,您的應用程式應該可以作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/514829.html
標籤:qt依赖关系
上一篇:Qml選單彈出延遲
下一篇:啟用圖層后qml組件消失
