MinGW 可以唸做 Min-G-W「明~碁~大不了~」或是MinG-W「名~大不了~」,也有人唸做 ming-wee「名貴(台語發音)」 或是 min gnu 「明~格奴」。可參考 http://en.wikipedia.org/wiki/MinGW MinGW 原來是 Cygwin (念做「賽葛-wing」)裡 GNU 開發工具的一個分支,沒 Cygwin 複雜,而且目的也與 Cygwin 不同,Cygwin 的目的是希望透過一個 dll (就是 Cygwin1.dll 通常被安裝在 C:\Windows\system32底下) 建立一個系統呼叫轉換層,將原先 unix 世界裡的 system call 呼叫,經由這個 DLL 把它們映對到微軟視窗作業系統的系統呼叫,如此一來就可以很方便在 Windows 底下模擬出一個 unix 平台來,這樣你不需要一個 unix 機器照樣也可以開發 unix 程式。開發好的程式只要拿到 UNIX 平台上就可以使用。同理原來UNIX上諸多 Open source 程式也可以粉方便拿到 Windows 世界來享用,當然啦!UNIX system calls 與 Windows APIs 不盡然可以一對一對應,Cygwin 的目標在於儘可能 Compatible,執行績效倒不是重點考量。 「名~大不了~」可就不同啦!他的目的反而是將 gnu 這個 open source, free 的開發工具移植到微軟視窗平台,他直接產生出來的PC視窗平台機器碼,可以說與微軟 Visual Studio 做出來的一摸一樣,可以彼此互相通用。執行效率反而是重點。MinGW 常與 MSYS(Minimal SYStem)搭配使用,後者是跑在Windows視窗上的一個瘦身型羽量級 UNIX shell 功能,MinGW與他搭檔還可以進一步做一些更彈性的 Config。(按: UNIX 世界Open source 的玩法,大約都是用 cvs 或是 Sub version 去取得 Source code,然後 configure --> build --> install 三部曲, configure 會先蒐集你平台上各個工具元件實際安裝路徑,根據它們來調整軟體 Project檔(通常它是一個Makefile),之後才執行 make 去 Build 出軟體,透過 Install 腳本,最後再把作好的軟體 install (安裝)到適當的資料夾來使用。這 MSYS 就可以讓 MinGW 這編譯工具也具備第一步的 configure 功能。 xminGW 則是有人突發奇想,再進一步把 minGW 移植回去 UNIX平台,在 UNIX/Linux平台上有個 xminGW的好處是,在 UNIX 機器上可以有一個跨平台編譯器(Cross-compiler),在 UNIX平台上直接編譯產生 Windows 平台上可以執行的機器碼。Cross-compiler 在內嵌式系統開發上常用到,要內嵌的那個平台通常稱作 Target platform(標的平台),一般而言檔次較低功能上也比較陽春,並不適合在上面開發系統,大多數都是假手另一個開發程式的Source platform(可以是 Windows 或是 UNIX/Linux),透過上面的 Development toolchain 裡的 Cross-compiler 去產生出標的平台上的程式碼(通常是另一個OS平台),下載到標的平台來執行。 你的 PDA 可能上面是 Samsung 的 ARM7 或是 ARM9 處理器,他上面的應用程式其實是透過在 Linux 的 ARM Toolchain 跨平台開發出來的啦! Likewise 你手機也是個內嵌式系統,它上面的應用程式都是透過類似的 Cross-compiler 編譯出來的啦! http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?t=1895

    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()