运行它后,我有以下makefile,我对makefile进行了一些更改,现在当我运行它时,我得到一个“make:无法为`default'完成”。我如何强制它重建?我执行“make”并且“make clean”,当我输入“make”时我仍然收到错误消息。为Java/Linux生成文件
另外,如何获取src目录中的log4.properties文件以复制到目标目录(在make文件和命令行中:javac -classpath src:lib/log4j-1.2 .16.jar src/*。java -d bin)?
# # define compiler and compiler flag variables # JFLAGS = -g -cp .:src:lib/log4j-1.2.16.jar JC = javac # # Clear any default targets for building .class files from .java files; we # will provide our own target entry to do this in this makefile. # make has a set of default targets for different suffixes (like .c.o) # Currently, clearing the default for .java.class is not necessary since # make does not have a definition for this target, but later versions of # make may, so it doesn't hurt to make sure that we clear any default # definitions for these # .SUFFIXES: .java .class # # Here is our target entry for creating .class files from .java files # This is a target entry that uses the suffix rule syntax: # DSTS: # rule # 'TS' is the suffix of the target file, 'DS' is the suffix of the dependency # file, and 'rule' is the rule for building a target # '$*' is a built-in macro that gets the basename of the current target # Remember that there must be a before the command line ('rule') # .java.class: $(JC) $(JFLAGS) $*.java # # CLASSES is a macro consisting of 4 words (one for each java source file) # CLASSES = \ src/MatrixDriver.java \ src/ConcreteMatrix.java \ src/Matrix.java \ src/Submatrix.java # # the default make target entry # default: classes # # This target entry uses Suffix Replacement within a macro: # $(name:string1=string2) # In the words in the macro named 'name' replace 'string1' with 'string2' # Below we are replacing the suffix .java of all words in the macro CLASSES # with the .class suffix # classes: $(CLASSES:.java=.class) # # RM is a predefined macro in make (RM = rm -f) # clean: FORCE $(RM) *.class FORCE:
你改变了什么? – surfen 2012-03-30 00:51:32
我为输出目录添加了-d bin,但只是拿出来了。我仍然得到了make:'default'没有什么可做的。 – user994165 2012-03-30 01:05:56
有点偏离主题,但您可能需要查看更多针对Java的构建工具,例如Ant或Maven。能够在类路径中放置'**/*。jar'变得非常方便,一旦你获得了更多的依赖关系。 – Bruno 2012-03-30 01:23:16