【发布时间】:2011-03-01 23:08:10
【问题描述】:
使用 Qt Creator,我正在 Qt 中创建一个带有自定义插槽的类:
class CustomEdit : public QTextEdit
{
Q_OBJECT
public:
CustomEdit(QWidget* parent);
public slots:
void onTextChanged ();
};
但是,我收到此链接器错误:
undefined reference to 'vtable for CustomEdit'
文档说:
如果您收到“未定义对 LcdNumber 的 vtable 的引用”的编译器错误,您可能忘记运行 moc 或在链接命令中包含 moc 输出。
...但这意味着什么并不明显。
有什么我需要添加到我的班级或 .pro 文件中的吗?
编辑 -- 这是我的 .pro 文件:
QT += 网络\ 脚本 \ 网络套件\ xml 目标 = 我的应用 模板 = 应用程序 来源 += main.cpp \ 主窗口.cpp \ 自定义编辑.cpp 标题 += MainWindow.h \ 自定义编辑.h 表格 += 主窗口.ui编辑:
This question 处理相同的问题,但答案并不清楚我如何在 Qt Creator 中解决此问题。我是否需要将 moc 生成的 .cpp 文件显式添加到要链接的文件列表中?这似乎很痛苦。
【问题讨论】:
-
您是否尝试在 SO 中搜索? ;-) stackoverflow.com/questions/1552069/…
-
谢谢,但我没有运行 qmake,我使用的是 Qt Creator
-
仅供参考,我在 SOURCES 而不是 HEADERS 中放错了一些 .h 搞砸了,它会产生相同类型的错误。
标签: qt signals signals-slots slot moc