zoukankan      html  css  js  c++  java
  • Qt编程之信号与槽-------unresolved external symbol "public: virtual struct QMetaObject const * __thiscall XX::metaObject(void)const

    原因是加入Q_OBJECT这个macro的类,被编译的时候就要用到moc这个命令,所以在VS2010中,没有加入此命令的应用,当然会出错了。所以解决办法是加,或者如果你不使用信号槽可以直接删除。

    当要在GUI中用到信号与槽,就需在.h文件中的类里写入Q_OBJECT宏。而任何含有Q_Object的类都必须使用Qt的moc工具生成对应的cpp文件,然后在项目里面包含这个cpp,编译才能成功,否则会出错链接错误,moc yourfilename.h -o moc_youfilename.cpp,这是moc命令行的使用。

    Qt自动生成moc文件:

    命令行生成moc文件的方式:

    cd C:/Qt/4.7.1/bin

    moc  .h文件群路径 -o 要生成的moc文件的全路径;

    例如:

    VS中不是用addin创建的项目,自动生成moc文件的设置:

    在VS的解决方案管理器里面,右键需要生成moc文件的头文件-打开属性窗口;

    常规-项类型,选择自定义生成工具;

    关闭属性窗口重新打开,就出现了自定义生成工具选项;

    自定义生成工具-常规:

    命令行:"$(QTDIR)inmoc.exe"  "%(FullPath)" -o ".GeneratedFiles$(ConfigurationName)moc_%(Filename).cpp"

    输出:.GeneratedFiles$(ConfigurationName)moc_%(Filename).cpp

     将输出视为内容:是

     链接对象:是

    如果编译还有问题,在解决方案资源管理器里阿敏,右键生成的moc文件打开属性窗口;

    配置属性-常规:设置下在debug和release下面分别设置下是否在项目中排除的属性;

    references:

    http://blog.csdn.net/zxgis/article/details/8243493

    http://liangbing8612.blog.51cto.com/2633208/596269

    http://www.cnblogs.com/liuyunfeifei/archive/2013/05/01/3052856.html

    http://blog.csdn.net/hackbuteer1/article/details/6573317

    http://stackoverflow.com/questions/7272040/q-object-problem-in-visual-c

    http://blog.sina.com.cn/s/blog_687960370101dd79.html

    http://stackoverflow.com/questions/14170770/unresolved-external-symbol-public-virtual-struct-qmetaobject-const-thiscal

    http://blog.csdn.net/xiaofengkuang/article/details/9999147

    一个搜索时候搜索到的关于用VS2010重新编译Qt的附属产物:

    http://stackoverflow.com/questions/5601950/how-to-build-qt-for-visual-studio-2010

  • 相关阅读:
    leetcode--Different Ways to Add Parentheses
    C++调用SQLServer存储过程
    用IdHTTPServer搞个简单的WEB服务器下载文件
    php pdo调用SQLServer存储过程无法获取返回结果
    SQL Server Profiler 跟踪远程服务器的语句
    Delphi格式化函数Format、FormatDateTime和FormatFloat详解
    单独编译某个pas文件
    SQLServer OpenRowSet 导入数据
    模仿QQ气泡聊天
    升级到XE10
  • 原文地址:https://www.cnblogs.com/foohack/p/3867364.html
Copyright © 2011-2022 走看看