gpt4 book ai didi

c++ - 未解析的外部符号:QMetaObject const QwtPlotMagnifier::staticMetaObject

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:10:14 26 4
gpt4 key购买 nike

我有一个使用 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。这对我来说一定是一个愚蠢的错误..请启动我的大脑,某人!

最佳答案

将此行添加到 .pro 文件以向编译器提示外部符号:

DEFINES += QWT_DLL

在文件 qwt_global.h 中有宏。如果没有这个宏,编译器会认为这是一个内部符号。

关于c++ - 未解析的外部符号:QMetaObject const QwtPlotMagnifier::staticMetaObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42902556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com