我使用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/

10-09 23:02