に「vtableのために未定義の参照」を解決するために役立っていないコードです:私は手動でビルドディレクトリを削除した何も私はここで</p> <p>「CustomUndoStackためにvtableのために未定義の参照」エラーでこれを構築することはできませんQtの
QT += widgets
CONFIG += c++14 console
CONFIG -= app_bundle
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += main.cpp
、私はすべての可能な方法で「すべてリビルド」「すべてクリーン」しようとしたとき、私は100500回qmakeに実行してきた、私は上CustomUndoStackインターフェイスを変更しました9000回、何も役に立たない。
問題はどこですか?
UPDコメントに答える:私はQ_OBJECT行を削除すると、これを行うことはできません。それはあなたの問題はあなたがクラスのサブクラスQObject
の宣言を持っていると.cpp
ファイル内で内部Q_OBJECT
マクロを持つことに起因する「いいえ、そのようなシグナルはQObject :: undoSignal()」
class CustomUndoStack : public QObject
{
// Q_OBJECT
public:
CustomUndoStack() {
connect(this, SIGNAL(undo_signal()), &undoStack, SLOT(undo()));
}
signals:
void undo_signal();
private:
QUndoStack undoStack;
};
私はQt 5.9を使用しています – banana36