Ogitor 编译遇到的问题

本文介绍如何在Windows环境下使用Visual Studio编译QT项目,并针对使用Q_OBJECT宏时出现的链接错误提供了解决方案,即通过moc命令自动生成所需的moc_*.cpp文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

QT编译

  • 打开 “Visual Studio 命令提示”.
  • “Visual Studio 命令提示”下定位到程序目录运行:configure -platform win32-msvc2008 -nomake demos -nomake examples -no-opengl -no-qt3support
  • 运行 “nmake”命令.
  •  

     

    使用了Q_OBJECT宏之后在编译的时候会遇到下面的错误:

    --------------------Configuration: testqt - Win32 Debug--------------------
    Linking...
    test.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall MyMainWindow::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyMainWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
    test.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall MyMainWindow::qt_metacast(char const *)" (?qt_metacast@MyMainWindow@@UAEPAXPBD@Z)
    test.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall MyMainWindow::metaObject(void)const " (?metaObject@MyMainWindow@@UBEPBUQMetaObject@@XZ)
    debug/testqt.exe : fatal error LNK1120: 3 unresolved externals
    Error executing link.exe.

    testqt.exe - 4 error(s), 0 warning(s)

     

    解决方法,使用moc命令自动生成moc_*.cpp文件,具体操作入下图:

     

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值