- 共同要求:
- 在家目錄下建立 zzz 目錄。
- 切換工作目錄到 zzz,所有練習皆存在此目錄。
-
檔案導向都是執行.sh腳本命令時導向,不是寫在腳本內導向。檔案導向到
/tmp/$mysid.$evalname
目錄,其中變數 $mysid
為自己的學號,$evalname
為評分程式名稱不加附檔名,目錄若不存在,必須自行建立。
- 下載檔案 make1.tar.gz。
- 解打包壓縮 make1.tar.gz。
- 進入 make1 工作目錄。
-
mf1-mf5 新增的項目都列在檔案最後,且不要更動前面的項目,題目沒要求的,也不要多做。
- 寫一 makefile mf1,要求如下:
- 修改程式讓程式印出你的「位置 IP最後一段 學號 姓名」,要換行。
- 使用 .o 檔編譯成可執行檔 mf1.bin。
- 編譯法則:使用 gcc 編輯器,依序為 -o mf1.bin 生成執行檔,使用 main.o 2.o 3.o 檔。
- 承上題,產生 makefile mf2,要求如下:
- 包含原 mf1 的目標項目。
- 使用 gcc -MM 查詢所有標的及目標項目,並累加導向到 mf2,不做其他更動。
- 承上題,產生 makefile mf3,要求如下:
- 包含原 mf2 的目標項目。
- 增加目標項目 remove 移除產生的執行檔及 .o 檔,依序為 mf1.bin main.o 2.o 3.o。
- 承上題,產生 makefile mf4,要求如下:
- 包含原 mf3 的目標項目。
- 使用法則一
.c.o
自訂 .c 檔處理成 .o 檔法則,使用 gcc 編譯器,緊接使用數學函式庫選項。
- 承上題,產生 makefile mf5,要求如下:
- 包含原 mf3 的目標項目。
- 使用法則二
%.o: %.c
自訂 .c 檔處理成 .o 檔法則,使用 gcc 編譯器,緊接使用數學函式庫選項。
- 使用 make -p 查詢法則,去除註解行及空白行,列出所有法則 (有幾行列幾行)。
- 第一種法則
.<old_suffix>.<new_suffix>:
- 過濾目標項目副檔名 .sh 檔案的處理法則,導向到 mk1-1.txt。
- 過濾目標項目副檔名 .cpp 處理成 .o 的法則,導向到 mk1-2.txt。
- 第二種法則
%.<new\_suffix>: %.<old_suffix>
- 過濾目標項目副檔名 .sh 檔案的處理法則,導向到 mk2-1.txt。
- 過濾目標項目副檔名 .cpp 處理成 .o 的法則,導向到 mk2-2.txt。