Qt:LNK2001和LNK2019在源文件中实现信号/插槽后出现错误

Lou*_*s93 4 c++ linker qt qt-creator

这包括我的MainWindow文件中的声明,为简洁起见,我没有包含库包含.我已将QObject.h包含在所有必需的库中.在包含第二个连接调用之前编译正常.第一个Ctrl-C处理程序工作正常.

I took out my code, thought my employer wouldn't like it. See the appropriate response below!

我正在使用QT Creator.当我搜索这些错误消息时,提供的大多数解决方案都围绕修复make命令/路径或在Visual Studio中编译时出现的类型.

我重申,这些错误仅在包含全球GCamera和MainWindow的第二次连接调用后出现.该程序在此之前编译并运行.

提前谢谢,我为冗长的帖子道歉,并期待收到任何意见.

ale*_*sdm 5

您应该有一个名为的文件moc_tcamera.cpp,用于在构建目录中实现缺少的符号.

如果它不存在,你应该"运行qmake",并"重建"你的项目(这两个动作都在Qt Creator Build菜单中).

为什么会发生错误:

qmake为包含宏的所有源文件的Makefile添加了一个moc(Qt的元对象编译器)步骤,Q_OBJECT或者Q_GADGET这样的文件被称为"mocable".一旦文件被检测为mocable或non mocable,该状态在重新运行qmake之前不会改变.

QtCreator仅在.pro文件更改时自动运行qmake(例如,添加或删除文件时).

这意味着您可能Q_OBJECT在文件中没有宏的情况下编译了一次项目tcamera.h,然后添加了该宏.并且因为在添加调用之前您不需要元对象connect,VC++没有尝试解析缺少的符号.