Makefile luôn liên kết lại

Oct 27 2020

Tôi không thể tìm ra lý do tại sao Makefile của tôi lại liên kết mỗi lần. Ai đó có thể giải thích cho tôi?

Đây là Makefile của tôi:

SRCS    = ${wildcard ./srcs/*.c} OBJS = ${SRCS:.c=.o}
INCL    = includes
CC      = gcc
CFLAGS  = -Wall -Wextra -Werror
NAME    = BSQ

.c.o :
            ${CC} -I ${INCL} ${CFLAGS} -c $< -o ${<:.c=.o} all : ${OBJS}
            ${CC} -o ${NAME} ${OBJS} clean : rm -f ${OBJS}
fclean :    clean
            rm -f ${NAME}
re :        fclean all

Trả lời

3 Barmar Oct 27 2020 at 14:53

Bởi vì allmục tiêu không tạo một tệp có tên all, vì vậy makekhông biết rằng nó đã được thực hiện.

Bạn nên làm cho allphụ thuộc ${NAME}và sau đó thêm một mục tiêu để ${NAME}thực hiện liên kết.

all: ${NAME} ${NAME}: ${OBJS} ${CC} -o $@ $^