我在嘗試部署使用Qt構建的新應用程序時遇到了嚴重的麻煩。當從Qt Creator啓動時(所有版本:調試,配置文件,發行版),程序運行良好,但雙擊.exe啓動時會崩潰。一個錯誤對話框彈出以下消息:不可能部署Qt應用程序
defaultTypeFor @ QTimer @@ CA AW4TimerType @ Qt的@@^h @ Z無法在動態鏈接庫位於 C:?\用戶\ SDT1 \ Documents \ Scanner \ Scanner_deploy \ Scanner.exe
我使用的是Qt 5.8.0,我正在用MSVC2015_64位構建項目。我使用windeployqt.exe從
C:\ Qt的\ 5.8 \ msvc2015_64 \ BIN
到dinamically鏈接Qt庫。
自從我從舊的connect
語法(使用宏SIGNAL
和SLOT
)移至具有函數指針的新語法後,此問題開始發生。我也開始使用QTimer::singleShot
而不是QMetaObject::invokeMethod
,並不意外的是錯誤涉及到QTimer
。然而,這個程序在Qt Creator內運行得很好,我無法弄清楚問題所在,因爲我使用windeployqt來獲取正確的dll。
此外,爲什麼我的.exe在錯誤消息中被稱爲「dinamic鏈接庫」?這是一個.exe!