修改了一下
#工作目录
WORKDIR=.
#源文件路径
SRC=$(WORKDIR)/src
#头文件目录
INC=$(WORKDIR)/inc
#目标文件目录
OFILE=$(WORKDIR)/obj
#库文件目录
LIBFLAG=$(HOME)/lib
#源代码文件目录
CLIENTSRC=$(SRC)/clientsrc
SERVERSRC=$(SRC)/serversrc
#两个程序的目标代码目录
CLIENTTMP=$(WORKDIR)/$(OFILE)/clientobj
SERVERTMP=$(WORKDIR)/$(OFILE)/serverobj
clisrc=$(wildcard $(CLIENTSRC)/*.c)
sersrc=$(wildcard $(SERVERSRC)/*.c)
#客户端目标文件
clientOBJ=$(patsubst $(CLIENTSRC)/%.c,$(CLIENTTMP)/%.o, $(clisrc))
serverOBJ=$(patsubst $(SERVERSRC)/%.c,$(SERVERTMP)/%.o, $(sersrc))
CC=gcc
#目标
BIN=client server
all:$(BIN)
client:$(clientOBJ)
$(CC) -L$(LIBFLAG) -lpthread -litcastsocket -lmessagereal $^ -o $@
server:$(serverOBJ)
$(CC) -L$(LIBFLAG) -lpthread -litcastsocket -lmessagereal -lclntsh -licdbapi $^ -o $@
$(CLIENTTMP)/%.o:$(CLIENTSRC)/%.c
gcc -c $< -o $@ -I$(INC)
#echo $(LIBFLAG)
$(SERVERTMP)/%.o:$(SERVERSRC)/%.c
gcc -c $< -o $@ -I$(INC)
#echo $(LIBFLAG)
#伪目标 不会与目录里面的文件进行比较,直接执行命令
.PHONY:clean
clean:$(BIN)
rm $(CLIENTTMP)/*.o $(SERVERTMP)/*.o $^ -fr
Makefile 简单 编译时候y用用
最新推荐文章于 2022-09-11 21:06:07 发布