首頁 >後端開發 >C++ >為什麼我的 Qt 5 靜態建置在 Windows 上崩潰並出現存取衝突錯誤?

為什麼我的 Qt 5 靜態建置在 Windows 上崩潰並出現存取衝突錯誤?

Patricia Arquette
Patricia Arquette原創
2024-12-07 03:01:12889瀏覽

Why Does My Qt 5 Static Build Crash on Windows with an Access Violation Error?

在Windows 上部署Qt 5 應用程式:排除存取衝突錯誤

在Windows 上部署Qt 5 應用程式可能具有挑戰性,尤其是在使用靜態建置時。本文探討了一個經驗豐富的問題,即 Qt 5 靜態建構在 Windows 8 中的「乾淨」PC 上崩潰,且沒有明確的錯誤訊息。

故障排除步驟:

要解決存取衝突錯誤,請執行以下步驟採取:

  1. 使用Dependency Walker: 在Windows 7 上執行Dependency Walker (depends.exe) 發現源自QtGui.dll 的存取衝突。錯誤訊息指示:

    Second chance exception 0xC0000005 (Access Violation) occurred in "QT5GUI.DLL" at address 0x61C2C000.
  2. windeployqt 簡介: 從 Qt 5.2 開始,windeployqt 工具簡化了應用程式部署。此工具會自動將必要的 Qt 依賴項與 .exe 檔案一起複製。
  3. 指定 QML 目錄: 若要包含 QML 依賴項,請在執行 Windeployqt 時使用 --qmldir 選項。這會通知工具有關 QML 檔案的位置。
  4. 在乾淨的系統上進行測試: 透過在未安裝 Qt SDK 的電腦上測試應用程式或暫時重新命名來確保包含所有必需的檔案Qt 目錄。這可以防止應用程式引用 SDK 中遺失的檔案。

結論:

透過執行以下步驟,Windows 8 靜態建置中出現存取衝突錯誤已解決,允許Qt 5 應用程式在「乾淨」系統上成功部署。

以上是為什麼我的 Qt 5 靜態建置在 Windows 上崩潰並出現存取衝突錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn