首页 > 解决方案 > Makefile 每次都重新链接

问题描述

我无法弄清楚为什么我的 Makefile 每次都重新链接。有人可以向我解释吗?

这是我的 Makefile :

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

标签: makefile

解决方案


因为all目标没有创建一个名为 的文件all,所以make不知道它已经完成了。

您应该all依赖于${NAME},然后添加一个${NAME}执行链接的目标。

all: ${NAME}

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

推荐阅读