next up previous contents
Next: 多重目標項目(target) Up: 開發工具 - make 與 Previous: make 命令和 makefile   Contents

makefile 的變數

練習題
  1. 請列舉兩項 makefile 中使用變數的好處。
    Sol. 1.開發過程與最終版本使用之編譯參數不同:2.讓 makefile 也適用不同的編譯器。
  2. 在 makefile 中,定義變數 『MACRONAME=value』,有無錯誤,若有,則說明原因。
    Sol. 正確
  3. 在 makefile 中,定義變數 『MACRONAME□=□value』,有無錯誤,若有,則說明原因,其中 □ 表示空白。
    Sol. 正確
  4. 在 makefile 中,定義變數 『→MACRONAME□=□value』,有無錯誤,若有,則說明原因,其中 → 表示 <tab>, □ 表示空白。
    Sol. 錯誤,變數左邊不可以有 <tab>
  5. 在 makefile 中,定義變數『MACRONAME:□=□value』,有無錯誤,若有,則說明原因,其中 □ 表示空白。
    Sol. 錯誤,變數與變數內容在『=』兩邊不能具有『:』
  6. 在 makefile 中,定義變數『MACRONAME□=□』,代表意義為何?其中 □ 表示空白。
    Sol. 將變數清成空白
  7. 請列舉兩項,在 makefile 中取出變數 MACRONAME 的方法。
    Sol. $(MACRONAME)${MACRONAME}
  8. 請說明 make 取用環境變數的規則。
    Sol. 1.make 指令列後加;2.makefile 裡面指定;3.shell 原已具有。
  9. 若有一 makefile 中,目標項目 myapp 的編譯法則為 gcc -o $@ main.o ha.o,則產生之可執行檔為何?
    Sol. myapp
  10. 若有一 makefile 中,目標項目 myapp 的編譯法則為 gcc -o $@ main.o ha.o,其中 $@ 代表?
    Sol. 變數 $@ 代表目前的目標項目 myapp
  11. 若有一 makefile 中,有一法則為 -mkdir /usr/local/repository,其中 - 代表意義為何?
    Sol. make 會忽略命令的錯誤。
  12. 若有一 makefile 中,有一法則為 -rm main.o 2.o 3.o,其中 - 代表意義為何?
    Sol. make 會忽略命令的錯誤。
  13. 若有一 makefile 中,有一法則為 @rm main.o 2.o 3.o,其中 @ 代表意義為何?
    Sol. make 不會在標準輸出上,顯示要執行的命令。


next up previous contents
Next: 多重目標項目(target) Up: 開發工具 - make 與 Previous: make 命令和 makefile   Contents
2017-06-14