栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【QT加VS】无法解析的外部符号“public:virtualstructQMetaObjectconst*

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【QT加VS】无法解析的外部符号“public:virtualstructQMetaObjectconst*

问题描述
在VS下开发Qt,自己新建h头文件和CPP源文件,在h文件中实现了继承某个QT类的自定义类,但是编译链接的时候报错,如下图:

问题分析
由于通过Qt编程时,.h/.cpp文件并第一次编译之后,若.h文件中定义类时没有添加Q_OBJECT宏以及信号函数、槽函数,VS编译命令中就没有moc命令,就不会调用Qt的moc工具以生成moc_.cpp文件;并且即使添加了Q_OBJECT宏之后,VS也不会自动添加moc命令,因而不会生成moc文件。
VS在link时,找不到moc文件,就出现了error LNK2001的错误。
解决方案
通过在代码文件夹下调用cmd,然后手动生成对应的moc_
.cpp文件,
具体命令行:moc.exe 123.h -o moc_123.cpp
执行完之后就会在文件夹中生成moc_123.cpp
然后在CMakeLists.txt这个文件中把新增的.h和.cpp文件都添加下,然后重新编译即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/590050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号