next up previous contents
Next: Makefile 變數 Up: make 與 makefile Previous: Makefile 自訂法則   Contents

實機練習題

  1. 共同要求:
    1. 在家目錄下建立 zzz 目錄。
    2. 切換工作目錄到 zzz,所有練習皆存在此目錄。
    3. 下載檔案 make1.tar.gz
    4. 解打包壓縮 make1.tar.gz。
    5. 進入 make1 工作目錄。
    6. 題目沒要求的,不要多做。
  2. 寫一 makefile mf1,要求如下:
    1. 修改程式讓程式印出你的「位置 IP最後一段 學號 姓名」,要換行。
    2. 使用 .o 檔編譯成可執行檔 mf1.bin。
  3. 承上題,產生 makefile mf2,要求如下:
    1. 包含原 mf1 的目標項目。
    2. 增加所有相依性法則的目標項目 (不設定法則)。
  4. 承上題,產生 makefile mf3,要求如下:
    1. 包含原 mf2 的目標項目。
    2. 增加目標項目 remove 移除產生的執行檔及所有 .o 檔。
  5. 承上題,產生 makefile mf4,要求如下:
    1. 包含原 mf3 的目標項目。
    2. 使用法則一 .c.o 自訂 .c 檔處理成 .o 檔法則,使用 gcc 編譯器,編譯選項加入數學函式庫。
  6. 承上題,產生 makefile mf5,要求如下:
    1. 包含原 mf3 的目標項目。
    2. 使用法則二 %.o: %.c 自訂 .c 檔處理成 .o 檔法則,使用 gcc 編譯器,編譯選項加入數學函式庫。
  7. 使用 make -p 查詢預設第一種法則 .<old_suffix>.<new_suffix>:
    1. 去除註解行及空白行。
    2. 過濾目標項目副檔名 .sh 檔案的處理法則,儲存到 mk1-1.txt。
    3. 過濾目標項目副檔名 .cpp 處理成 .o 的法則,儲存到 mk1-2.txt。
  8. 使用 make -p 查詢預設第二種法則 %.<new\_suffix>: %.<old_suffix>
    1. 去除註解行及空白行。
    2. 過濾目標項目副檔名 .sh 檔案的處理法則,儲存到 mk2-1.txt。
    3. 過濾目標項目副檔名 .cpp 處理成 .o 的法則,儲存到 mk2-2.txt。


De-Yu Wang 2019-08-12