Qt:对 'vtable' 的未定义引用
Qt: Undefined reference to 'vtable'
我正在使用 C++ 在 Qt 中开发一个程序。但是由于这个错误,我被困在了这一点上。奇怪的是,我创建了一个单独的程序,其中以下代码有效,但是当我将代码放入我的程序中时,出现错误。
error: undefined reference to `vtable for Create_button_config'
错误出在我创建 class 的头文件中。这是头文件中出现错误的部分。
class Create_button_config : public QObject
{
Q_OBJECT
public:
QMap<QString, QString> buttons;
void setParameters(){
qDebug() << "test";
buttons["ID1"] = "#52B1";
buttons["ID2"] = "#52B2";
buttons["ID3"] = "#52B3";
}
};
我在 main.cpp 中这样使用它
Create_button_config config;
config.setParameters();
知道这个错误是从哪里来的吗?
顺便问一下,这是制作在我的整个代码中可用的关联数组的正确方法吗?
提前致谢
缺少 vtable 通常是未能在链接器参数中包含 moc
的输出的症状。确保您在页眉上 运行 moc
,并且链接了结果。
请注意,如果您使用的是 qmake
,您可能需要重新 运行 qmake
来生成新的 makefile,如果您更改了 class 而不是Q_OBJECT
所以现在是 Q_OBJECT
- 它不会知道 moc
应该是 运行.
顺便说一句,添加一个构造函数是个好主意,该构造函数采用可选的父对象 QObject
,以便在用户需要的地方获得 Qt 内存管理(释放子对象)的一些好处。
我正在使用 C++ 在 Qt 中开发一个程序。但是由于这个错误,我被困在了这一点上。奇怪的是,我创建了一个单独的程序,其中以下代码有效,但是当我将代码放入我的程序中时,出现错误。
error: undefined reference to `vtable for Create_button_config'
错误出在我创建 class 的头文件中。这是头文件中出现错误的部分。
class Create_button_config : public QObject
{
Q_OBJECT
public:
QMap<QString, QString> buttons;
void setParameters(){
qDebug() << "test";
buttons["ID1"] = "#52B1";
buttons["ID2"] = "#52B2";
buttons["ID3"] = "#52B3";
}
};
我在 main.cpp 中这样使用它
Create_button_config config;
config.setParameters();
知道这个错误是从哪里来的吗? 顺便问一下,这是制作在我的整个代码中可用的关联数组的正确方法吗?
提前致谢
缺少 vtable 通常是未能在链接器参数中包含 moc
的输出的症状。确保您在页眉上 运行 moc
,并且链接了结果。
请注意,如果您使用的是 qmake
,您可能需要重新 运行 qmake
来生成新的 makefile,如果您更改了 class 而不是Q_OBJECT
所以现在是 Q_OBJECT
- 它不会知道 moc
应该是 运行.
顺便说一句,添加一个构造函数是个好主意,该构造函数采用可选的父对象 QObject
,以便在用户需要的地方获得 Qt 内存管理(释放子对象)的一些好处。