我是java和makefile的新手,我想了解一些关于makefile的介绍性信息。通常在网上找到的信息大多是例子和高层次的。下面是一些关于makefile的具体/天真的问题:
makefile:
JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
DNA.java \
C.java \
fastmatch.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
$(RM) *.class我做错什么了吗?我只是把所有的东西放在一个文件夹下,然后在命令行中输入"make“。我想我错过了一些大的图片,所以如果有人能解释给我听,我会非常感激的。谢谢
发布于 2013-04-02 05:17:31
make不是构建Java的正确工具。您应该使用Ant、Maven或其他Java构建工具。用make完成任务是可能的,但是对于除了最琐碎的Java程序之外的任何事情,您最终都会得到一个makefile,它每次都会删除所有内容并从头开始重新编译。
在C和朋友的土地上做好工作。在那里,源文件依赖于它导入的所有头,而头不依赖于任何东西(因为它们没有被编译),所以您的依赖树不会太深。在Java中,每个类依赖于它导入的每个类,这些类依赖于进一步的类,因此通常情况下,如果不编译项目中的每个其他类,就无法编译单个类。您可以在makefile中描述这一点,但是在不到一秒钟的时间内完成Ant所做的工作将是冗长的工作。
所有这些都是:
.java文件不是目标.class文件将与相应的.java文件位于相同的位置make本身就是一种相当强大的语言。这个makefile的结果是三个已编译的Java类(可能更多,因为javac可能会找到更多要编译的类,或者您的一些类可能有内部类。同样,这也是为什么make是Java的坏工具的原因)发布于 2013-04-02 05:15:58
我很难记住我的作品,但我认为你需要:
%.class : %.java
$(JC) $(JFLAGS) $<https://stackoverflow.com/questions/15756399
复制相似问题