当前位置: 首页 > article >正文

Qt使用CMake编译项目时报错:#undefined reference to `vtable for MainView‘

        博主将.h文件和.cpp文件放到了不同的文件目录下面,如下图所示:

        于是构建项目的时候就报错了#undefined reference to `vtable for MainView',这个是由于src/view目录下的CMake无法自动moc头文件导致的,需要手动moc include/view目录下的头文件,这样才能识别QOBJECT宏。

        在src/view的CMake中加入这三句话就行了。

set(MOC_SOURCES ${CMAKE_SOURCE_DIR}/include/view/mainview.h)  # 指定需要 moc 处理的头文件
qt_wrap_cpp(MOC_SOURCES ${MOC_SOURCES})
list(APPEND HEADER_FILES ${MOC_SOURCES})

#这个地方需要注意,由于.cpp和.h文件不在同一目录,所以需要手动通过moc,对.h文件的QOBJECT宏进行编译,否则回报虚函表错误
#undefined reference to `vtable for MainView'
aux_source_directory(. SOURCES_FILES)
set(MOC_SOURCES ${CMAKE_SOURCE_DIR}/include/view/mainview.h)  # 指定需要 moc 处理的头文件
qt_wrap_cpp(MOC_SOURCES ${MOC_SOURCES})
list(APPEND HEADER_FILES ${MOC_SOURCES})
add_library(viewlib SHARED ${SOURCES_FILES} ${HEADER_FILES})
target_link_libraries(viewlib PUBLIC Qt6::Widgets)

http://www.kler.cn/a/464385.html

相关文章:

  • Spring系列一:spring的安装与使用
  • Git 树形图表不显示问题
  • GIT 企业级开发学习 1_基本操作
  • 计算机毕业设计Django+Tensorflow音乐推荐系统 音乐可视化 卷积神经网络CNN LSTM音乐情感分析 机器学习 深度学习 Flask
  • React 数据是怎样传递的
  • net core介绍
  • 网络安全 | 量子计算与网络安全:未来的威胁与机遇
  • 量子计算:定义、使用方法和示例
  • UE4.27 Android环境下获取手机电量
  • Tushare提示本接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2
  • 从0入门自主空中机器人-4-【PX4与Gazebo入门】
  • 【大模型系列 02】LLM大模型基础知识
  • 第12关:博客系统之删除评论
  • 汇编语言:从键盘输入数字字符,(计算阶乘),以无符号十进制形式输出(分支、循环程序)
  • Wend看源码-Java.util 工具类学习(上)
  • CertiK《Hack3d:2024年度安全报告》(附报告全文链接)
  • 【Java 学习】Comparable接口 和 Comparator接口,掌控排序逻辑解析,深入 Comparable 和 Comparator 的优雅切换
  • linux进阶
  • Kafka优势剖析-分布式架构
  • 迅为RK3568开发板编译Android12源码包-设置屏幕配置
  • [人工智能] 结合最新技术:Transformer、CLIP与边缘计算在提高人脸识别准确率中的应用
  • halcon中的BLOB与灰度直方图的分析与理解
  • 华为iotda sdk发送消息无法更新quickstartpython问题解决
  • 丢弃法hhhh
  • python中subprocess指定用户与传递环境变量
  • 【重庆】《政务数字化应用费用测算规范》(T/CDCIDA 001—2023)-省市费用标准解读系列36