Makefile可以同时编译C和Java程序
我有三个程序需要同时编译,两个用C编写,一个用java编写。我让三个人在使用C语言时都使用Makefile,但后来用java重写了其中一个。。。有没有办法用同一个makefile一次编译所有3个
这是我当前的Makefile:
CC=gcc
JC=javac
JFLAGS= -g
CFLAGS= -Wall -g -std=c99
LDFLAGS= -lm
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = kasiski.java kentry.java
ALL= ic ftable kasiski
all: $(ALL)
ic: ic.o
kasiski: $(CLASSES:.java=.class)
ftable: ftable.o
ic.o: ic.c ic.h
ftable.o: ftable.c ftable.h
.PHONY: clean
clean:
rm -rf core* *.class *.o *.gch $(ALL)
# 1 楼答案
是的,你可以一次编译它们。如果“全部”目标依赖于所有三个应用程序,那么“全部生成”应该构建所有应用程序。您可以加入“-j3”来实际使用三个独立的线程和/或进程进行编译(不清楚“立即”是什么意思)。此外,这里还有一些批评:
欲知更多解释,请参阅我的Makefile tutorial。也就是说,您可能需要考虑一个更现代的构建系统,如Bazel或Gradle。这些系统被设计成使用更简单、更不容易出错、更可移植(因为它们使事情更容易移植)和更快