我使用Minix 2.0.4,所以不能使用gcc。我想用一个make文件编译多个C程序,有多个目标。
这是我的Makefile的当前状态
CFLAGS = -D_POSIX_SOURCE
LDFLAGS =
CC = cc
LD = cc
PROG = prog1 prog2
OBJS = prog1.o prog2.o
$(PROG): $(OBJS)
$(LD) $(LDFLAGS) $(OBJS) -o $(PROG)
clean:
rm -rf $(PROG) $(OBJS)
但是,当我尝试像这样使用makefile时,会得到一个错误,上面写着“prog2:无法编译,不应用转换”。你知道我做错了什么吗?
最佳答案
把它分开:
PROG1 = test
PROG2 = test2
OBJ1 = test.o
OBJ2 = test2.o
all: $(PROG1) $(PROG2)
$(PROG1): $(OBJ1)
$(LD) $(LDFLAGS) $(OBJ1) -o $(PROG1)
$(PROG2): $(OBJ2)
$(LD) $(LDFLAGS) $(OBJ2) -o $(PROG2)
等
如果所有的补贴都让你紧张,你可以简单地说
all: test test1
test: test.o
$(LD) $(LDFLAGS) test.o -o test
test2: test2.o
$(LD) $(LDFLAGS) test2.o -o test2
从一开始就删除:
PROG1 = test
PROG2 = test2
OBJ1 = test.o
OBJ2 = test2.o
还有其他捷径,但这更具体和明显。
关于c - 是否可以使用CC编译器来编译多个目标文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19260990/