2009年3月10日 星期二

[QT] 使用 VS2005 編譯 MimeParser

最近準備在 Windows 上去分析 Email 的資料,花了近兩天的功夫,找了幾套 C++ 的開發,但都沒有很如願地編好,直到今天,正式地對 QT 去編譯!


共找到兩套用 C++ 開發:



前者是 BSD License ,後者是 GPL License ,倒都還不錯!只是我比較偏好前者已完成的程式架構。然而,前者有用到 QT 上的函式庫;後者則是我丟到 FreeBSD 7.0 的機器上,並沒有順利編好,雖然內附 WIN32 的設定,但似乎有點老舊。


先把 mimetic 講完好了,細節請透過上頭連結至作者網站上觀看介紹,我只講在 Windows XP with SP2 & VS2005 編的過程:



  • 解壓縮後,裡頭有 win32 的目錄,內附 buildvc.cmd。

  • 我下載到的版本 mimetic-0.9.5 ,與內附 buildvc.cmd 所敘顯然有出入。請修改 buildvc.cmd 中 "\mime\mimetic-0.8.6p" 取代成 ".." ,這個動作是以相對路徑去取資料。修正完它,就可以執行 buildvc.cmd

  • 在執行 buildvc.cmd 前,請先設定好環境變數,例如 cl 的來源位置,若覺得很無助,那就從[程式集]->[Microsoft Visual Studio 2005]->[Visual Studio Tools]->[Visual Studio 2005 命令提示字元] 進入 cmd mode 吧!再接換到 buildvc.cmd 的目錄位置,接著執行 buildvc.cmd 吧!

  • 很可惜的,過程中就出錯了!懶得改 code ,直接去抓 mimetic-0.8.7 版!並重複上述過程,至少 0.8.7 版就編出來啦!

  • 以上是不負責編法,版本 0.8.7 大約是 2004 的,而版本 0.9.5 看壓縮日期好像 2008 年 10 月左右,理論上用新版比較好,有需要的請自行修好它,修好麻煩分享一下 XD 我太懶了


接著,當然就是跟主題比較相關的,我要編的主角是 Mime Format/Email Parser !很慘的是,又是一段路要走,我甚至在編其環境時,還偷玩超任遊戲被老板看到,哈。



  1. 安裝 QT 相關環境,這步佔了 95% 的時間!

    • 至於 QT 部分,有分商業版跟免費版,我是抓免費版,但新版的我搞不定,最後我使用舊版 4.4.3 版原始碼。

    • QT 官網


    • QT 4.4.3 版


    • 編譯它!一樣從 [Visual Studio 2005 命令提示字元] 進入,然後切換到 C:\qt-win-opensource-src-4.4.3 ,接著打 configure 後再按 y 等它設定好環境,接著再打 nmake 讓他跑!好像跑了兩個小時?雖然我也邊弄其他事啦

    • 最後,他其實沒有正常結束,但至少我知道它有編好 qmake 了。另外再設定一下環境變數,[我的電腦]->[內容]->[進階]->[環境變數] 新增 QTDIR 其值為 "C:\qt-win-opensource-src-4.4.3" 而 PATH 部分也增加 "C:\qt-win-opensource-src-4.4.3\bin"



  2. 編譯 MimeParser-1.1

    • 解壓縮擺至 C:\

    • 用 cmd 切換至 C:\MimeParser-1.1 ,接著打入 qmake !終於沒任何錯誤訊息,並且產生 VS2005 專案了!接著,你以為這樣就搞定了嗎?還沒

    • 由於裡頭用了 JBufferString.h 和 JInputStream.h 等類似的東西,需再下載 IOStreams 的開發套件!既然上兩部都無誤發現,相信這步也會很順利,一樣解壓縮完(C:\iostreams) + qmake + VS2005 編譯它,就會產生出 lib 啦

    • 切回 MimeParser 的部分,稍微設定一下 include path 後(C:\iostreams\src),就能順利進行了!




以上就差不多收工!


有了 header file 和 lib 後,接著就是抽空完成 Mail to Handle 啦。今天的工作就是玩 cmake 還有編出 MimeParser 。


沒有留言:

張貼留言