2011年10月17日 星期一

[上課筆記] GNU development Tools

gcc: GNU C compiler
  將C原始碼編譯成可執行檔。

  可用以下參數設定編譯程度:
    -E: 只執行巨集展開,但不產生目的檔
    -S: 要求gcc產生組合語言程式碼
    -c: 編譯並組譯程式碼,但不做連結

  可用以下參數指定輸出檔名
    -o: 設定輸出檔名

as: 組譯器
  運用-a參數可產生組譯報表,可觀察記憶體位置

ld: 連結器

ar: 函式庫製作
  以-r參數產生函式庫時需以lib開頭

objdump:目標檔列印
  將編譯完成的目的檔以組合語言的型式印出

make: 編譯工具
  使用Makefile來告知make編譯哪些檔,格式如下:
    {target}: [prerequisite1] [prerequisite2]
    \t[command]

  使用方法為:
    make [target]
    若無指定target,會遵守第一個規則,通常會叫做all。

  GNU建議的phony target:
    all: 內定的編譯動作
    install: 安裝binary檔的動作
    clean: 清除obj檔的動作
    dist: 產生configure的動作
    distclean: 清除configure所產生的動作