更改makefile以在'make all'命令上使用

问题描述 投票:0回答:1

因此,我已经完成了有关制作Sudoku程序的学校项目,并且我拥有此makefile,当我使用'make'命令时,该makefile可以正常工作。我只是发现我需要它在“ make all”命令上进行干净地编译。我不知道如何设置。有什么建议吗?

CC = gcc
OBJS = main.o MainAux.o game.o parser.o solver.o 
EXEC = sudoku_console
COMP_FLAG = -ansi -Wall -Wextra -Werror -pedantic-errors
GUROBI_COMP = -I/usr/local/lib/gurobi563/include
GUROBI_LIB = -L/usr/local/lib/gurobi563/lib -lgurobi56

$(EXEC): $(OBJS)
    $(CC) $(OBJS) $(GUROBI_LIB) -o $@ -lm
main.o: main.c game.h 
    $(CC) $(COMP_FLAG) -c $*.c
game.o: game.c MainAux.h parser.h solver.h game.h
    $(CC) $(COMP_FLAG) -c $*.c
MainAux.o: MainAux.c game.h
    $(CC) $(COMP_FLAG) -c $*.c
parser.o: parser.c MainAux.h
    $(CC) $(COMP_FLAG) -c $*.c
solver.o: solver.c game.h MainAux.h
    $(CC) $(COMP_FLAG) $(GUROBI_COMP) -c $*.c
clean:
    rm -f $(OBJS) $(EXEC)
makefile
1个回答
0
投票

只需创建一个名为all的目标,该目标取决于您想要发生的一切。因此,例如:

all: $(EXEC)
.PHONY: all

.PHONY卫生良好,但并非严格要求。

现在,当您运行make all时,它会找到all目标,并看到要对其进行更新,必须先更新$(EXEC)目标,而鲍勃是您的叔叔!

© www.soinside.com 2019 - 2024. All rights reserved.