Unix 指令4
大綱 pico編輯器 make編輯檔案 gcc編譯指令
pico編輯器(1/2) 開(新)檔案 常用指令說明 pico filename ctrl +g (get help) ctrl +x (exit) 離開pico----當你編輯好後,按此指令就可離開pico編輯畫面。 當按了 ^x 後,會先出現下列這一行: Save modified buuffer (ANSWERING " No " WILL DESTROY CHANGES ) ? 問你是否要存檔,如果要則按y,反之按n。
pico編輯器(2/2) 常用指令說明 ctrl + o (writeout) ctrl + y (prev pg) 往上跳一頁---當檔案內容很多時,可以用的到。 ctrl + v (next pg) 往下跳一頁。 ctrl + k (cut text) 刪除一行。 ctrl + u (uncut text) 將刪除的內容恢復。
make 簡介 主要功能 Uinx系統對於規劃一個由許多小程式所組成的大型工作計劃,提供一個工具,此工具稱為Makefile。 make是unix指令,用來協助編譯檔案。 Makefile是一script檔,執行此script檔的指令是make。 利用Makefile將許多個小程式連結起來,只要輸入make,就可編譯整個程式。 除錯的過程中,也許一個小程式有錯誤,需要修改,在重新編譯整個程式時,會依據Makefile檔案中的敘述,加以判斷,只編譯被修改的部分,如此可節省,編譯程式的時間。
make使用 指令 make make -f 檔案名稱 直接輸入make, 則電腦會自己抓Makefile檔案執行 加入-f參數, 後面可接檔案名稱不是Makefile的script檔
Makefile格式 target : [ dependent ] <===== dependency line < tab鍵 > [ command ] <===== command line target:標籤 dependent 是針對 target 所做的附屬限制,可以多個或沒有,限制之目的,是為了避免link錯誤,或是其他問題。 若 command 自己獨立一行,必須以 < tab 鍵 > 做前導。
範例1 -沒有 dependent 附屬限制 install 是標籤。 @echo " Your installtions here. " install 是標籤。 @echo “ Your installtions here. ” 是 command,單獨一行,必須以< tab 鍵 >做前導。 當下make指令後,會直接執行command部分。
範例2a -當 dependent 是一個目的檔 install : word.txt @echo " Your installtions here. " install 是標籤。 word.txt 是 dependent , 針對 [ install ] 所做的附屬限制。 @echo “ Your installtions here. ” 是 command。 當下make指令後,會先尋找是否存在 word.txt 此檔,有的話,則再直接執行 command 部分。
範例2b -當 dependent 是一個目的檔 install : word.txt ; @echo " Your installtions here. " 若 dependent 與 command 在同一列,必須以 < ; > 分號隔開。
範例3 - 當dependency是一個 target install : clean @echo " Your installtions here. " clean : rm word.txt install 是標籤。 clean 是 dependent,不過它有 target 性質。 當下make指令後,會先執行 clean 這個 target的內容 ( rm wrod.txt ),處理完 , 則再回來處理 command ( @echo " Your installtions here. " ) 部分。
gcc編譯指令 自設執行檔檔名 系統自設檔名 gcc –o 執行檔名.out 原始程式檔名.c Ex: gcc –o hello.out hw1.c 系統自設檔名 gcc 原始程式檔名.c Ex: gcc hw1.c (會自動產生執行檔 檔名為a.out)
練習 simon% pico test.c #include<stdio.h> main() { int i; i=1; printf("Hi! How are you?\n"); printf("This is my %dnd C program ! \n ",i); printf("Happy?\n”); }
simon% make -f Makefile simon% make (它會自己去找Makefile) simon% test.out simon% pico paper.txt this is paper.txt simon% pico word.txt this is word.txt simon% pico Makefile com:clean gcc -o test.out test.c clean:paper.txt rm word.txt simon% make -f Makefile simon% make (它會自己去找Makefile) simon% test.out