QT 运行错误 exited with code -1073741515
构建环境 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、逐个加入第三方库,如果不知道缺少什么库,可以先直接运行程序,程序会启动失败,并显示缺少的库文件,如:
所有依赖的动态库导入后,便可正常启动。
运行时最好是在非构建环境上运行,因为我们的构建环境会将新增很多的环境变量,当程序在当前目录下找不到依赖库时,会在环境变量的目录下寻找,所有经常出现调试或在编译机器上能够正常运行,拿到另一台电脑就不能运行了。