在链接Qt的库,比如QtGui4.lib,我这里是在链接QtSolutions_PropertyBrowser-head.lib的时候出现的链接错误。大概是说一个“XXXX::staticMetaObject”的函数找不到定义。解决办法是,在include该Qt库的头文件时定义“__declspec(dllimport)”,对于QtSolutions_PropertyBrowser-head库,在其头文件qtpropertybrowser.h中有:
#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,编译通过。