微軟與 GNU 開發工具之比較

GNU 程式設計

GNU 程式簡介

GNU 與 C 語言

gcc 編譯器

glibc 函式庫

make 建置

ld 連結器

as 組譯器

ar 函式庫

objdump

objcopy

訊息

相關網站

參考文獻

最新修改

簡體版

English

在系統程式領域,微軟與 GNU 是兩個最常被使用到的開發工具,微軟的工具以 Visual Studio 為主,而 GNU 工具則以 gcc 為核心。

『GNU 開發工具』與『Visual Studio』都可以用作 C/C++ 與組合語言的開發工具,兩者各有優缺點。GNU工具的優點是短小精悍、支援平台眾多、而且開放原始碼。而Visual Studio 的優點是開發環境完整、視覺化開發介面優良、並且與微軟的 Windows 密切整合。

下表是微軟與 GNU 兩者的工具比較表,如果要執行這些微軟程式,最簡單的方法是於 Windows 中安裝 Visual Studio,然後開啟 Visual Studio 的命令列即可使用之。若要執行這些 GNU 工具,則可於 Windows 中安裝 Cygwin 或 MinGW 等 GNU 環境,或者安裝 Dev C++ 後就會自動具備 MinGW 環境,然後於環境變數 PATH 中加入這些工具的所在路徑即可。

工具 微軟 GNU
C編譯器 cl gcc
組譯器 ml as
連結器 link ld
專案建制器 nmake make
函式庫建構 lib ar
目的檔傾印 dumpbin objdump

GNU 與微軟的工具在設計上有點不同,但所具有的功能都相當類似,舉例而言,下表顯示了兩者在組譯與編譯器參數上的不同用法,其中微軟的組合語言附檔名通常為 *.asm,但 GNU 的則為 *.s。要將 C 語言轉為組合語言,在微軟工具中可使用 cl /Fa<fileName.asm> 的指令,但在 GNU 工具中則需使用 gcc -S <fileName.c> -o <fileName.s>。

組合語言工具 微軟 GNU
組譯器 ml 範例:ml sum.asm as 範例:as sum.s
C 編譯器 (轉組合語言) cl 範例:cl /Fasum.asm sum.c gcc 範例:gcc -S sum.c -o sum.s

雖然微軟與 GNU 工具兩者在設計上稍有不同,但是對系統程式設計師而言,重要的是使用工具的能力,以及程式的基本概念。有了這些核心概念後,就能兵來將擋,水來土淹,達到一通百通的境界。

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License