作为一个小菜鸟,之前一直误会了 CC 和 CFLAGS 的用法,在这里马克一下正确用法。
之前我认为的用法:
CC = gcc
CFLAGS = -Wall -o
SRC1 = testserver.c
SRC2 = testclient.c
all:client server
client:$(SRC2)
$(CC) $^ $(CFLAGS) $@
server:$(SRC1)
$(CC) $^ $(CFLAGS) $@
.PHONY:clean
clean:
rm client server
主要是 $(CC) $^ $(CFLAGS) $@
这个是多余的,因为设置了
CC = gcc
CFLAGS = -Wall -o
这个之后
client:$(SRC2)
server:$(SRC1)
就会自动按设置的执行,即便不加那两句代码
比如这样就是正确的用法(很简便):
all:server client
CC=gcc
CFLAGS=-g -Wall
server:tcp.c server.c
client:tcp.c client.c
clean:
rm server client
这个也能完美执行