Qt报QWidget: Must construct a QApplication before a QWidget错误
Qt 报这个错误的原因是程序中采用了LIBS添加静态库lib库文件和运行的模式(Debug/Release)模式加载对应的dll动态库不匹配问题
解决方案:亲测有效
- 在pro文件中加载静态库时,区分是release和debug模式
# 加载静态库:根据情况,加载对应的库
# d代表debug模式编译的debug库
win32:CONFIG(release, debug|release): {
LIBS += $$PWD/lib_x64/release/libTest*.a
}
else:win32:CONFIG(debug, debug|release): {
LIBS += $$PWD/lib_x64/debug/libTestd*.a
}
- 在编译好的可执行exe文件同级目录下同时拷贝release和debug模式下的动态库文件:dll文件
libTest.dll #release 动态库,与静态库lib*.a文件保持除后缀不一致外,其他一致
libTestd.dll # debug 动态库,与静态库lib*.a文件保持除后缀不一致外,其他一致
此时采用Qt 编译和运行程序时,Qt会自动选择对应的库进行编译和运行