2014-08-29 41 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] 
相关问题