跳到主要內容

一個關於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了。

留言

這個網誌中的熱門文章

Windows Installer死掉了嗎?

最近我的電腦發生了奇怪的事情。只要是與Windows Installer有關的東西,都無法動作了。也就是說,我無法安裝包裝成msi的軟體。也無法加以移除。搞了半天,始終沒有頭緒。一度動念頭想要將整台電腦重灌。 不過,經過一路追蹤問題,我發現是Windows Installer的服務無法啟動,而造成整個問題。透過系統管理工具中的『服務』,去啟動Windows Installer服務時,每次都看到代碼1067的錯誤訊息。無論怎麼重灌Windows Installer也無法解決。 今天突然靈光一閃,我開始把正在執行的程式一個接著一個砍掉,一邊砍一邊去啟動Windows Installer服務。試了好久,都快要放棄的時候。忽然我的Windows Installer就run起來了。趕快看一下是砍了哪個程式變成這樣的。終於被我找到罪魁禍首了!!就是下面這個程式造成的。只要把這個服務停掉,我的Windows Installer就復活了!!! 感謝匿名網友提供另外一個小技巧: 『只要在windows installer服務的內容裡,在登入那頁勾" 允許服務與桌面互動 " 就輕鬆解決囉!』 BTW, 我沒實際試過,有遇到這個問題的人,請試試看!然後好心的跟我回報一下! 有些網友找不到service的控制畫面。下面簡單說明一下: service的控制是在 『控制台->系統管理工具->服務』 英文的話是 『Control Panel->Administrative Tools->Services』 再不然,用command line下services.msc /s也可以叫出來。 再不行...就試試吧 > net stop LVPrcSrv > %WINDIR%\system32\sc.exe config LVPrcSrv start= disabled PS: 如果需要重新安裝MSI installer,可以到Microsoft的 下載中心 。

Portable Python

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

SQLite的能耐

最近寫了一個小程式,將網路上面抓到的台灣股市資料文字檔轉換到SQLite的資料庫中。由於資料量不小,所以有點擔心SQLite會不會爆掉。但是,SQLite很爭氣的完成了這項任務。總共轉入的資料量一共有2,514,691筆資料。最後資料庫檔案的大小變成139 MB (146,763,776 位元組)。程式是用Python及SQLAlchemy完成。轉換的時間我有點記不起來了。不過,大約是十幾二十分鐘吧。 看來,SQLite小歸小,不過容量也是相當驚人呢!