将QGuiApplication改为QApplication后出现未解析错误如何解决
问题原因
该报错属于链接阶段符号缺失错误,你已经正确引入了QApplication的头文件,但CMake配置中没有将QtWidgets模块的库文件链接到项目目标,导致链接器找不到QApplication相关的实现符号。
解决步骤
- 修正
find_package配置
你原有配置的组件名写法不规范,且第二行通用查找配置未包含Widgets组件,修正为:
find_package(QT NAMES Qt5 COMPONENTS Core Quick Widgets REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick Widgets REQUIRED)
- 补充Widgets模块到链接配置
在target_link_libraries中添加QtWidgets模块的链接声明,修正后配置为:
target_link_libraries(project PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick Qt${QT_VERSION_MAJOR}::Widgets )
- 清理缓存重新编译
修改完成后删除原有的build构建目录,重新执行CMake配置、构建流程即可解决报错。
内容的提问来源于stack exchange,提问作者unity123
相关产品推荐
相关产品推荐

