tur*_*oup 0 java eclipse makefile compilation
我是java和makefile的新手,我想了解一些关于makefile的介绍性信息.通常在网上找到的信息大多是示例和高级别的.以下是我对makefile的一些具体/天真的问题:
什么类型的文件是makefile的目标?.class和.java?
makefile对那些项目文件做了什么?我在Eclipse中完成了我的项目,因此.class文件存储在bin中,.java文件存储在scr中.makefile在这些文件之间建立了什么样的连接?
makefile的结果是什么?makefile的目的是告诉编译器如何生成可执行文件,因此结果是当前目录中的新可执行文件,是吗?
我应该在哪里放置makefile?在bin文件夹中?scr文件夹?将所有苍蝇混合在一个目录下并放在那里?
最后,我为我的项目制作了一个小的makefile,它应该编译3个类.它不起作用,我不知道为什么:
生成文件:
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
Run Code Online (Sandbox Code Playgroud)
我做错什么了吗?我只需将所有内容放在一个文件夹下,然后在命令行中输入"make".我想我在这里错过了一些大图,所以如果有人能向我解释,我真的很感激.谢谢
make不是构建Java的正确工具.您应该使用Ant或Maven或其他Java构建工具.这是可能获得与完成工作make,但任何东西,但最琐碎的Java程序,你将最终与删除一切从头开始,每次重新编译生成文件.
在C和朋友的土地上做得很好.在那里,源文件依赖于它导入的所有头文件,并且头文件不依赖于任何内容(因为它们不会被编译),因此您的依赖关系树不会过分深入.在Java中,每个类都依赖于它导入的每个类,这依赖于更多的类,因此通常情况下,如果不编译项目中的每个其他类,就无法编译单个类.你可以在你的makefile中描述它,但是在不到一秒的时间内完成Ant所做的工作将需要数小时的繁琐工作.
所有这些说:
.java文件不是目标.class文件最终将与相应.java文件位于同一位置make它本身就是一种相当强大的语言.这个 makefile 的结果是三个编译的Java类(可能更多,因为javac可能会发现更多的类要编译,或者你的一些类可能有内部类.再次,这就是为什么makeJava是一个糟糕的工具)| 归档时间: |
|
| 查看次数: |
6450 次 |
| 最近记录: |