【发布时间】:2017-03-20 11:35:44
【问题描述】:
我有一个使用 QwtPlotMagnifier 的库,以及其他 Qwt 类。我决定继承 QwtPlotMagnifier 以便在重新缩放绘图时发出信号。 库 (mylib.lib) 已编译,但使用它的应用程序现在抱怨与 QwtPlotMagnifier 的 moc 输出相关的未解析外部。
我正在静态链接 qwt;因此,在最低级别的库中拥有预处理器指令 QWT_DLL 的要求在这里不适用。
这是错误(子类称为 PlotMagnifier):
mylib.lib(moc_PlotMagnifier.obj) : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QwtPlotMagnifier::staticMetaObject" (?staticMetaObject@QwtPlotMagnifier@@2UQMetaObject@@B)
子类声明没什么特别的:
#pragma once
#include "qwt_plot_magnifier.h"
/**
subclass of QwtPlotMagnifier to provide a signal when zooming is complete
*/
class PlotMagnifier : public QwtPlotMagnifier
{
Q_OBJECT
public:
explicit PlotMagnifier(QWidget *w);
virtual ~PlotMagnifier();
signals:
void rescaled();
protected:
virtual void rescale(double factor);
};
我正在使用 Visual Studio 2013 fwiw。我的应用程序仍然像往常一样包含 qwtd.lib。这一定是我的一个愚蠢的错误。请启动我的大脑,有人!
【问题讨论】: