星期日, 3月 29, 2009

Cross-compile Windows Applicatoin and Library (Static and Shared) on Linux

最近需要在Linux上編譯Windows DLL, 用Google找了一下, 結論是用MinGW來達成.

看了一些網頁, 都在講怎麼在Linux先編譯MinGW. 可是都沒成功.

後來在MinGW網頁裡的FAQ找到一個官方做法1, 使用x86-mingw32-build.sh (這檔案包含在x86-mingw32-build.sh-0.0-20061107-1.tar.bz2), 使用方法請加--help就可以看到了.

這個script會以互動模式把編譯前需要的組態和檔案搞定. 過程中, 會詢問source packages要從哪裡獲得. 第一次編譯的我, 從網路上下載囉, 下載後會把檔案放在你指定的位置, 假設/opt/mingw32/src)

但, 在編譯binutil時, 是使用binutils-2.17.50-20060716-1-src.tar.gz這個檔案, 會使得編譯失敗.

這時, 我們只去MinGW網站下載binutils-2.19.1-src.tar這個檔案, 並放入/opt/mingw32/src裡, 然後將先前的binutils-2.17.50-20060716-1-src.tar.gz先暫時移到別的地方.

然後, 重新執行x86-mingw32-build.sh並在過程中指定source packages從/opt/mingw32/src裡取得. 這樣就可以順利編譯出MinGW.

然後, 我們就可以用MinGW編譯出Windows的執行檔(.exe)和函式庫(.lib和.dll).

1. MinGW cross compiler for Linux build environment, http://www.mingw.org/wiki/LinuxCrossMinGW

星期一, 9月 29, 2008

奇怪的課程

最近公司安排了一個奇怪的課程.

上完了以後覺得根本就像是直銷大會一樣...一直洗腦.

姑且不論是不是一門洗腦課, 如果真的能實踐課程教其實也是一門好事.

就以哪門課所教的為目標努力實行吧!!!

星期一, 8月 25, 2008

很奇怪的一個禮拜

這禮拜的實在很~!@#$%^&*()_+

莫名奇妙的就在公司渡過兩個夜晚.

假日也莫名奇妙的出現在公司.

還被嫌做不好...真無言.

雖然也和上級反應過, 但, 為了種種的理由...我想我也只能對主管發發牢騷...然後還是承受下來吧.

但, 在開會的過程中, 情緒和情緒化的字眼發洩過後, 自己坐下冷靜反省, 自己也確實有做錯的地方.

可是, 最近的工作模式好像在幾個月前也曾出現過, 當時的狀況實在很糟糕. 現在又有同樣的感覺.

不過, 還是把自己的心情收拾整理一下, 把自己的事做好.

其他的事就交給該負起責任的人吧.

星期二, 8月 19, 2008

最近在工作上遇到了...

最近在工作上接觸到了許多新東西,像是MAC controller & PHY chip, NC-SI, SPI Flash.

Media Independent Interface(MII)是一種標準的介面用來將MAC controller和PHY chip連接在一起. [1]和[2]介紹了幾個MII的變種. 即然是標準的介面, 當然就有一些規範, 但最近遇到的PHY chips好像並沒有完全遵守規範在做. 使得driver在透過MII取得PHY chip status時, 必需針對使用的PHY chip做些調整, 真麻煩.

NC-SI[3]則沒有摸哪麼多, 只是知道在搞什麼鬼而已. 從功能面來講, 它可以用來設定MAC controller將特定MAC address的frame forward到特定的目的地, 當然也要MAC controller支援這種功能才行. 而這功能稱之為Sideband.

至於SPI Flash則是老掉牙了, 一句話帶過, 就是透過SPI存取Flash.

這些東西雖然簡單, 但是, 要讓driver能徹底發揮硬體特性的同時source code又俱有延展性和可讀性, 可真是需要一番功夫啊.

[1] Media Independent Interface
[2] MII (Media Independent Interface 介质无关接口)
[3] Network Controller Sideband Interface (NC-SI) Specification

星期日, 8月 17, 2008

Free Accounting Software | GnuCash

GnuCash是一個記帳軟體,用來記記帳,分析自己平常都把錢花在什麼地方我想是很足夠的.

不過,事實上,也是因為我的需要也就是記記帳,所以對GnuCash的認識也僅止於此.

GnuCash, http://www.gnucash.org/