在連接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,編譯經過。函數