这是qt的另一个问题:我扩展了一个QAbstractTableModel,但是我得到了一个编译错误(我正在使用cmake)
// file.h
#ifndef TABLEMODEL_H
#define TABLEMODEL_H
#include <QAbstractTableModel>
class TableModel : public QAbstractTableModel
{
Q_OBJECT
public:
TableModel(QObject *parent = 0);
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex()) const;
};
#endif
// file.c
#include "tableModel.h"
TableModel::TableModel(QObject *parent)
: QAbstractTableModel(parent){}
int TableModel::rowCount(const QModelIndex & ) const
{ return 1; }
int TableModel::columnCount(const QModelIndex & ) const
{ return 1;}当我编译时,我得到:
在TableModel‘/partd/unusedsvn/unusedpkg/iface/tableModel.cpp:4:的函数TableModel': /partd/unusedsvn/unusedpkg/iface/tableModel.cpp:4: undefined reference tovtable中,未定义对vtable for TableModel' collect2: ld returned 1 exit status的引用
有谁有同样的麻烦吗??
发布于 2008-12-02 12:31:26
解决了将所需的cpp文件添加到CMakeLists.txt的问题。
set(tutorial_SRCS app.cpp mainWin.cpp tableModel.cpp)当我运行cmake时,将自动创建moc*
发布于 2008-11-26 21:17:30
确保通过MOC运行头文件,并链接那些MOC目标文件。
发布于 2008-12-03 19:01:38
几乎100%的vtable错误都是由于缺少头/类定义或这些定义中的拼写错误造成的,所以首先要做的是确保头和源正确(并包含在项目中)。我个人曾因此而咒骂Qt到了最低的地狱,并错过了项目文件中的小拼写错误,一点也不好玩:)
https://stackoverflow.com/questions/322147
复制相似问题