mysql makefile例子_makefile示例

#定义编译选项

CXX = g++

#设置“CXXFLAGS”环境变量

CXXFLAGS = -g -Wall -O0 -std=c++0x

#定义头文件目录,链接库目录,链接文件

INCLUDE_PATH = ../frame/3rdInc/eluna/ ../frame/3rdInc/glog ../frame/3rdInc/google ../frame/3rdInc/json /

../frame/3rdInc/uuid

LIB_PATH = ../frame/3rdLibs32/ ../frame/3rdLibs32/lib

LIBS = -leluna -lglog -ljson -llua-5.1.so -lprotobuf -luuid -lmysql

ifneq($(CXX), g++)

LIBS += -lstdc++

endif

#定义项目代码根目录及所有文件夹目录

#追加变量"+="操作符

SRC_DIR = ./

VPATH = $(SRC_DIR)

VPATH += $(SRC_DIR)/operate

VPATH += $(SRC_DIR)/data

VPATH += $(SRC_DIR)/../frame

VPATH += $(SRC_DIR)/../frame/common

#找出所有 .cpp 文件 和相应的.o文件(带上路径)

#'wildcard'函数,它有一个参数,功能是:展开称一列所有符合由其参数描述的文件

#'patsubst'函数(patten substitude匹配替换),它需要3个参数,第一个是一个需要匹配的式样;

#第二个是表示用什么来替换它, 第三个是:需要被处理的

#objs = $(patsubst %.c, %.o, $(SOURCES))

#foreach 用来做循环的

#$(foreach , , )

#把参数中的单词逐一取出放到所指定的变量中;

#然后再执行 所包含的表达式。每次会返回一个字符串;

#循环过程中的返回的每个字符串会以空格分割;

#最后当整个循环结束时,所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。

SRC_FILES = $(foreach n, $(VPATH), $(wildcard $(n)/*.cpp))

#使用了变量的高级用法中的替换,将变量$(SRC_DIR)中的.cpp 替换成.o

#也可以用静态模式中的替换

#OBJ_FIELS := $(SRC_DIR:%.cpp = %.o)

#notdir 取文件函数

OBJ_FILES = $(notdir $(SRC_FILES:.cpp=.o))

#把所有的.o文件放到定义好的输出文件夹中统一管理

#make中的另一种用”变量“来定义变量的方法,使用":=" 操作符

OUTPUT_DIR := debug

OUTPUT_OBJS = $(addprefix $(OUTPUT_DIR)/, $(subst $(SRC_DIR)/, ,$(OBJ_FILES)))

#linking

server : $(OBJ_FILES)

@echo $(GENVER)

$(LINK.cc) $(OBJ_FIELS) -o $@ $(LIB_PATH) $(LIBS)

#生成.d文件的模式

.%.d : %.cpp

@set -e; rm -f $@; \

$(CC) -MM $< > $@.$$$$; \

sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \

rm -f $@.$$$$

#sinclude 与include 功能一致;区别在于sinclude 可以兼容其他版本的make

#打包

.PHONY: tar

tar:

tar zcvf ./tank_s3_$(shell date -d today +"%m%d_%H%M").tar.gz ../ListServer

#清除 伪目标

.PHONY: clean

clean:

-rm -rf *.o *.d.* *.d .*.d

#打印输出

@echo 'hello world'

#makefile函数,以"$"来标识的

#$() 或 ${}

#function:函数名,arguments:参数,参数之间以“,”分隔,函数名与参数之间空格分开

#函数调用以“$”开头

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值