在使用QWT进行二维曲线绘制,使用方法如下:
class Plot: public QwtPlot
{
Q_OBJECT
……
}
报错:error LNK2001: 无法解析的外部符号"public: static struct QMetaObject const QwtPlot::staticMetaObject"
经过网上查找提示,需要在预编译文件中加入 QWT_DLL预编译宏,查找qwt的源代码qwt_global.h
#ifdef QWT_DLL #if defined(QWT_MAKEDLL) // create a Qwt DLL library #define QWT_EXPORT Q_DECL_EXPORT #else // use a Qwt DLL library #define QWT_EXPORT Q_DECL_IMPORT #endif #endif // QWT_DLL
只有定义QWT_DLL宏,导入导出宏定义才能起作用。
因此有时候编译第三方库发现链接问题的时候,需要考虑是否与预定义宏没有设置有关系!