繁体   English   中英

makefile,工作正常,但即使没有更改也可以运行命令

[英]makefile, working fine but running commands even with no changes

我有以下make文件。 问题是,即使两个.cpp文件中没有任何更改,它仍会在提示符下运行所有​​命令。 其他一切工作正常。

all: hello1

hello1: make func 

        gcc hellomake.o hellofunc.o -o hello -I.

make: hellomake.c 

        gcc -c hellomake.c

func: hellofunc.c

        gcc -c hellofunc.c

clean:

        rm -rf *o hello

run:

        ./hello 

这是一个可以修改的示例Makefile(尤其是CFLAGS部分),并且不会重新链接

NAME    = xxx
SRCS    = xxx.c
OBJS    = $(SRCS:.c=.o)

CC      = gcc
RM      = rm -rf

CFLAGS  +=  -W -Wall -Wextra
CFLAGS  += -O2
CFLAGS  += -ansi -pedantic
CFLAGS  += -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE

all:    $(NAME)

$(NAME):        $(OBJS)
    $(CC) $(OBJS) -o $(NAME)

clean:
    $(RM) $(OBJS)

fclean: clean
    $(RM) $(NAME)

re:     fclean all

.PHONY: all clean fclean re

.PHONY允许区分最终的文件名和规则名

您需要按如下所述将目标中的.c替换为.o

make: hellomake.o 

        gcc -c hellomake.c

func: hellofunc.o

        gcc -c hellofunc.c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM