在一个QT项目中新建一个带QObject定义的类后 (不是继承),可能会出现LNK2001 的错误,这是由于IDE没有自动为新建的类生成 moc_XXXX.cpp 文件导致的。

一种做法是手动生成moc_XXXX.cpp文件,然后复制到指定位置,如https://www.cnblogs.com/lovebay/p/9337528.html,但一旦文件有改动,就需要重新手动操作一遍。

另一种做法是通过配置,自动生成moc_XXXX.cpp文件,可参考https://jingyan.baidu.com/article/3065b3b68518adbecef8a477.html。步骤是

  1. 修改类的.h文件的配置属性,在“项类型”或“ItemType”中选择“自定义生成工具”或“Custom Build Tool”,点击应用,左边的属性里会出现一个新的选项,如图所示:
  2. 参考其它正确的.h文件配置该项即可

若这一过程完全配置正确,编译链接还是有问题的话,再参考https://blog.csdn.net/humanking7/article/details/80871729,因为刚才只是配置了.h文件,而项目还没有正确编译对应的cpp文件。步骤:

  1. 编辑项目的.vcxproj文件,参考其它的QT文件,我碰到的是缺少下面这个XML片段,注意:Debug和Release应各有一个该片段,只是其中下面高亮的路径不一样

    <ClCompile Include="GeneratedFiles\Debug\moc_XXXXX.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
    </ClCompile>

最新文章

  1. iOS 学习 - 18.TextField 自定义菜单事件,复制和微信分享
  2. [IT新应用]家用NAS,自建“360云盘”
  3. border-radius的兼容问题
  4. 内网渗透测试思路-FREEBUF
  5. MySQL出现Waiting for table metadata lock的原因以及解决方法
  6. ES6中Arguments和Parameters用法解析
  7. 计算G711语音的打包长度和RTP里timestamp(时间戳)的增长量
  8. android获取本机的IP地址和mac物理地址
  9. 把这两天遇到的码(e)农(xin)题记下来
  10. Android 怎样在linux kernel 中读写文件
  11. Makefile中的变量和shell变量
  12. mysql 学习心得2
  13. wireshark基础学习—第四部分wireshark过滤器总结
  14. (摘录)Java 详解 JVM 工作原理和流程
  15. 《Unix&amp;Linux大学教程》学习笔记6——Unix文件系统
  16. [微信开发] 微信JSAPI - 获取用户地理位置信息
  17. Qt读取TXT文件时,GBK与UTF-8编码判断
  18. scrapy 去重 dont_filter=False
  19. HTTP 权威指南 第二章 URL 与资源
  20. 从今天开始 每天记录HTML,CSS 部分的学习笔记

热门文章

  1. .NetCore 使用Cookie
  2. Spring Boot中通过CORS解决跨域问题
  3. [Maven]Maven构建可执行的jar包(包含依赖jar包)
  4. ES 07 - Elasticsearch查询文档的六种方法
  5. Puppeteer 截图及相关问题
  6. 1.3创建项目「深入浅出ASP.NET Core系列」
  7. kubernetes系列10—存储卷详解
  8. java并发多线程显式锁Condition条件简介分析与监视器 多线程下篇(四)
  9. SpringBoot系列——Redis
  10. .net core api +swagger(一个简单的入门demo 使用codefirst+mysql)