QWidget: Must construct a QApplication before a QWidget 请按任意键继续. . .
原创
©著作权归作者所有:来自51CTO博客作者妙为的原创作品,请联系作者获取转载授权,否则将追究法律责任
系列文章目录
文章目录
前言

一、错误原因?
在调试examples工程时,遇到编译报错“QWidget: Must construct a QApplication before a QWidget”
根据字面理解应该是,创建窗体前应该必须先构造一个QApplication。网上很多人也遇到过这样的问题,也确实是这个原因,如下:

但是小编遇到的问题却不是这个,最后查找的原因是vlc-qt库的debug和release版本混用的原因。

注意了,这里debug库是带d的。
兼容debug和release编译,qt中可以使用以下写法:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/./ -lCartDll
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/./ -lCartDll
#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/./ -lCartDlld
else:unix: LIBS += -L$$PWD/./ -lCartDll
//静态库路径
LIBS += -L$$PWD/./ -lCartDll
INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/.
注意修改完pro文件后,最好先qmake,然后再重新构建。