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

實機練習題

  1. 共同要求:
    1. 在家目錄下建立 zzz 目錄。
    2. 切換工作目錄到 zzz,所有練習皆存在此目錄。
    3. 下載檔案 make1.tar.gz
    4. 解打包壓縮 make1.tar.gz。
    5. 進入 make1 工作目錄。
    6. mf1-mf5 新增的項目都列在檔案最後,且不要更動前面的項目,題目沒要求的,也不要多做。
  2. 寫一 makefile mf1,要求如下:
    1. 修改程式讓程式印出你的「位置 IP最後一段 學號 姓名」,要換行。
    2. 使用 .o 檔編譯成可執行檔 mf1.bin。
    3. 編譯法則:使用 gcc 編輯器,依序為 -o mf1.bin 生成執行檔,使用 main.o 2.o 3.o 檔。
  3. 承上題,產生 makefile mf2,要求如下:
    1. 包含原 mf1 的目標項目。
    2. 使用 gcc -MM 查詢所有標的及目標項目,並累加導向到 mf2,不做其他更動。
  4. 承上題,產生 makefile mf3,要求如下:
    1. 包含原 mf2 的目標項目。
    2. 增加目標項目 remove 移除產生的執行檔及 .o 檔,依序為 mf1.bin main.o 2.o 3.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 查詢法則,去除註解行及空白行,列出所有法則 (有幾行列幾行)。
    1. 第一種法則 .<old_suffix>.<new_suffix>:
      1. 過濾目標項目副檔名 .sh 檔案的處理法則,導向到 mk1-1.txt。
      2. 過濾目標項目副檔名 .cpp 處理成 .o 的法則,導向到 mk1-2.txt。
    2. 第二種法則 %.<new\_suffix>: %.<old_suffix>
      1. 過濾目標項目副檔名 .sh 檔案的處理法則,導向到 mk2-1.txt。
      2. 過濾目標項目副檔名 .cpp 處理成 .o 的法則,導向到 mk2-2.txt。


De-Yu Wang 2021-01-06