2014-08-29 42 views
0

這裏是我的程序結構:Makefile文件,編譯的子目錄的源代碼,並將其放置在另一個子目錄

主目錄:

Makefile 
src/ 
bin/ 

我希望能夠編譯文件/ src目錄目錄並將後續的.class文件放在/ bin目錄中。

這是我到目前爲止有:

BIN = ./bin/ 
SOURCE = ./src/ 

LIST = $(BIN)ContactBook.class 

all: $(LIST) 

$(BIN)%: $(SRC)%.java 
    javac -d $(BIN) $< 
+0

您可能需要在目標的末尾添加'.class'來完成這項工作。 – 2014-08-29 23:23:31

+0

你會怎麼做*沒有*製作? – Beta 2014-08-29 23:51:58

+0

沒有我會做:javac -d ./bin/ ./src/ContactBook.java – Chrease 2014-08-30 01:39:27

回答

0

您的規則是不正確的,你要編譯.java文件到.class文件,您目前還沒有規則來處理這個問題。

SRC := $(wildcard src/*.java) 
OUT := bin 

LIST := $(SRC:src/%.java=$(OUT)/%.class) 

all: $(LIST) 

$(OUT)/%.class: src/%.java | $(OUT) 
    javac -d $| $< 

$(OUT): 
    @mkdir [email protected] 
相關問題