Makefile 简单 编译时候y用用


修改了一下
#工作目录
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





这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值