Solved: Qt Library LNK 2001 staticMetaObject error

      在连接Qt的库,好比QtGui4.lib,我这里是在连接QtSolutions_PropertyBrowser-head.lib的时候出现的连接错误。大概是说一个“XXXX::staticMetaObject”的函数找不到定义。解决办法是,在include该Qt库的头文件时定义“__declspec(dllimport)”,对于QtSolutions_PropertyBrowser-head库,在其头文件qtpropertybrowser.h中有:html

#if defined(Q_OS_WIN)
#  if !defined(QT_QTPROPERTYBROWSER_EXPORT) && !defined(QT_QTPROPERTYBROWSER_IMPORT)
#    define QT_QTPROPERTYBROWSER_EXPORT
#  elif defined(QT_QTPROPERTYBROWSER_IMPORT)
#    if defined(QT_QTPROPERTYBROWSER_EXPORT)
#      undef QT_QTPROPERTYBROWSER_EXPORT
#    endif
#    define QT_QTPROPERTYBROWSER_EXPORT __declspec(dllimport)
#  elif defined(QT_QTPROPERTYBROWSER_EXPORT)
#    undef QT_QTPROPERTYBROWSER_EXPORT
#    define QT_QTPROPERTYBROWSER_EXPORT __declspec(dllexport)
#  endif
#else
#  define QT_QTPROPERTYBROWSER_EXPORT
#endif

 

      也就是在连接QtSolutions_PropertyBrowser-head库时只要定义了QT_QTPROPERTYBROWSER_IMPORT宏便可。我在Makefile的CPPFLAGS(使用的是VS2010编译器)加入了-DQT_QTPROPERTYBROWSER_IMPORT,编译经过。函数

相关文章
相关标签/搜索