在用QT开发第三方SDK的时候,刚开始是运行正常的,但是重装系统之后再次运行程序总是出现:程序异常结束。
以下方法尝试无效,但不失为一种排查方法:
- 重新安装QT;
- 检查Qt Creator配置,编译器位数和SDK匹配;
- 清理(Clean)和重新构建(Rebuild)项目;
- 检查.pro 文件包含的所有必要的依赖文件路径是否正确;
INCLUDEPATH += $$PWD/include
LIBS += $$PWD/lib/XX.lib
- 确保XX.dll 位于程序的可执行文件所在的目录(release 目录);
后面发现只要调用第三方SDK的库函数就会出现这个问题,如果不调用就正常,所以从排查dll文件入手。
以下几种方法可以排查dll问题:
- 有些SDK可能依赖特定版本的运行时库。例如,Visual C++ Redistributable。尝试安装后无效。
- 确保 XX.dll 位于程序的可执行文件所在的目录( release 目录),或者将其路径添加到系统的 PATH 环境变量中。尝试后无效。
- 检查SDK是哪种模式:Debug模式和release模式;
- 确保 XX.dll 及其依赖项具有正确的文件权限。所有相关文件都应具有可读和可执行权限。
- 尝试使用 DLL 的完整路径来加载:
#include <QCoreApplication>
#include <QDebug>
#include <Windows.h> // 如果使用Windows平台
int main(int argc, char *</