【发布时间】:2013-06-15 12:59:50
【问题描述】:
我下载了一个 Qt 项目,但是当我想编译它时,它在“发布”模式下出现以下错误:
moc_mainwindow.cpp:-1: 错误:未定义对“MainWindow::on_pushButton_2_clicked()”的引用 moc_adminpage.cpp:-1: 错误: 对 'AdminPage::on_pushButton_clicked()' 的未定义引用
而且根本不编译
在“调试”模式下,它会编译并且 exe 会运行,但它会给出以下警告:
QMetaObject::connectSlotsByName: on_pushButton_clicked() 没有匹配的信号 QMetaObject::connectSlotsByName:on_lineEdit_editingFinished() 没有匹配信号
并且注意到的“pushButton”在被点击时不会做任何事情!
所以我对 moc 文件知之甚少,但我从来没有真正对它们做任何事情。不过我猜他们有问题。看起来 Qt 无法将我的 on_pushButton_clicked() 函数(插槽)连接到 pushButton clicked 信号。
PS 1:“发布”部分中提到的错误发生在 moc 文件中。
PS 2:在第一行的每个 moc 文件中,都有一个 #include "../../FinalProject/mainwindow.h
这会导致以下警告
目录中没有这样的文件
应该是这样的,但我该如何解决呢?
【问题讨论】:
-
您是否使用 qmake 作为您的构建系统?您是否还下载了 moc_* 文件?您是否尝试过删除它们并让 qmake 重新生成它们?
-
@NikosC。 :是的,我正在使用 qmake。我试着删除它们。它向我抛出另一个错误,说找不到 moc 文件。
-
请显示您用于构建项目的命令,包括对 qmake 的调用。
-
您是否尝试过删除构建目录中的所有“Makefile”文件?