[英]Makefile to compile both C and Java programs at the same time
我有三个需要同时编译的程序,2个用C编写,1个用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)
是的,你可以一次编译它们。 如果你的“所有”目标取决于所有三个应用程序,那么“make all”应该构建所有这些应用程序。 您可以使用三个单独的线程和/或进程来引入“-j3”进行实际编译(不清楚“一次”是什么意思)。 此外,还有一些批评:
有关更多说明,请参阅我的Makefile教程 。 也就是说,您可能需要考虑更现代的构建系统,如Bazel或Gradle 。 这些系统的设计使用起来更简单,更不容易出错,更便于携带(因为它们可以更方便地进行操作),而且速度更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.