跳到主要內容

一個關於Qwt在VS2010環境的link error

之前透過MinGW32與Qwt來開發程式一直都相安無事。最近嘗試使用Visual Studio 2010,Qt及Qwt來開發另外一個程式,卻遇上了下面這樣的錯誤:

moc_xxx.obj:-1: error: LNK2001: unresolved external symbol "public: static struct QMetaObject const QwtPlot::staticMetaObject" (?staticMetaObject@QwtPlot@@2UQMetaObject@@B)


後來終於在stackoverflow上面找到答案。其實解決方法極為簡單,只需要把QWT_DLL設成empty就可以了。看起來是因為Qwt對於import/export library的地方沒有自動偵測,所以導致這個問題。因此,強制設定QWT_DLL為empty就可以讓Qwt內由 moc 與 Q_DECL_EXPORT 所引起的問題得到解決。


可以在你的pro檔案內,加上下面的敘述:
DEFINES += QWT_DLL
這樣就可以把QWT_DLL變成empty了。

留言

這個網誌中的熱門文章

Portable Python

我常常需要把Python寫的script帶到其他電腦使用,因此,一個免安裝,可攜帶的Python就顯得十分重要。最近看過了幾個可攜式Python的方案,下面這個PortablePython是我覺得最合我意的方案。因為它提供了大部分會用到的Python module及工具,甚至連wxPython及PyGame也有。同時也有好用的Python編輯器PyScripter。所有開發Python所需的開發工具都一應俱全了!把它放到隨身碟中,就不用到處幫人安裝Python了。 PortablePython : http://www.portablepython.com/