[Makefile] Java makefile 筆記 (notes of java makefile)

在不使用 IDE 的環境開發,如果不使用 makefile 來簡化編譯加執行的流程的話

真的很麻煩啊!!!

這篇會隨著 project 做大來更新

Case1 :

假設資料夾要編譯的檔有四個: Game.java Main.java Character.java Sword.java

CC:=javac
RUN:=java
obj:=Game.java Main.java Character.java Sword.java
main:=Main
divider_compile:= ----------COMPILE COMPLETE----------
divider_over:= --------------COMPLETE--------------

all: $(obj)
    $(CC) $(obj)
    # $(info $(divider))
    @echo $(divider_compile)
    $(RUN) $(main)
    @echo $(divider_over)
notes:
  1. := 是指定變數,目前還不清楚跟 = 的差別
  2. 其實主體只有這三行而已
all: $(obj)
    $(CC) $(obj)
    $(RUN) $(main)

翻譯過來就是 javac 編譯當前路徑下所有的 java 檔

(在此我是手動列出有幾個 java 檔,用通配字元的方式表示還搞不定QQ)

  1. 用 $ 字號加小括號匡起來的內容,表示是變數,e.g. $(obj),就是指這行所定義的 obj 變數
obj:=Game.java Main.java Character.java Sword.java
  1. 因為我想要在終端機的輸出不要那麼雜亂,所以就加了分隔線,來區隔哪邊是 makefile 的輸出、哪邊是本身程式的輸出
@echo $(divider_compile)

ps. 在 echo 前面加的 @ 符號,現在也還沒搞清楚是怎樣,不過就是能讓輸出美一點XD

  1. 要最美的輸出的話,可以用 make –silent,保證水噹噹,把 makefile 的輸出隱藏得好好的

 

 

 

ps. 在 wordpress 架構之下要做文章排版真的好麻煩啊~~~~~

作者

RongSon

Graduate Student of CCU COMM Game Development, Network Communication, macOS/Ubuntu/Android, Arduino/Raspberry Pi/Intel Edison, Java/Python/C/C++

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *