構建環境 Qt5.9.5 + MSVC2015 32bit, 編譯成功,運行時產生一下錯誤:
Starting ****.exe... exited with code -1073741515
問題原因:
由於使用例C++第三方庫如:boost、odb,或者第三方QML庫如 toou2D,並且使用動態鏈接的方式進行鏈接,在運行時,由於缺少第三方庫,導致報錯。
解決方法:
1、首先找到程序依賴的QT庫,包括依賴的qml庫: 打開當前使用的構建套件的命令行工具如: (MSCV 2015(32bit))
進入到運行的可執行文件***.exe目錄下,
輸入 " windeployqt --qmldir C:\Qt\Qt5.9.5\5.9.5\msvc2015\qml .\ " ,其中 C:\Qt\Qt5.9.5\5.9.5\msvc2015\qm 為QT安裝環境 qml 所在位置。
這樣QT會自動將所依賴的動態庫全部導入到程序所在位置。
此外如果使用了第三方的QML庫,QT可能不能自動導入第三方庫,需要手動導入,如果我使用的Toou2,需要手動將包含Toou2D.dll的目錄Toou2D放到當前目錄下。
2、逐個加入第三方庫,如果不知道缺少什么庫,可以先直接運行程序,程序會啟動失敗,並顯示缺少的庫文件,如:
所有依賴的動態庫導入后,便可正常啟動。
運行時最好是在非構建環境上運行,因為我們的構建環境會將新增很多的環境變量,當程序在當前目錄下找不到依賴庫時,會在環境變量的目錄下尋找,所有經常出現調試或在編譯機器上能夠正常運行,拿到另一台電腦就不能運行了。