我最近常用的makefile

一、前言

这是我最近常用的一个makefile,支持mysql,多线程,按需配置即可,简单好用。


二、目录结构简介

这个makefile,对应的目录结构如下,makefile直接放在/YourProject目录下,与/bin目录同级

|-------------/YourProject

|--------------------/bin          存放可执行文件(必须存在)

|--------------------/config      存放配置文件(必须存在)

|--------------------/obj          存放编译过程中的.o文件(必须存在)

|--------------------/log          存放日志(必须存在)

|--------------------/pic           存放图片,可选,不一定要有这个文件夹

|--------------------/source     存放源码,包括.cpp和.h(必须存在)


三、makefile代码

注意事项:执行命令的那一行,必须以TAB开头,不能用空格!

-------------------------------------------------------------------------

DIR_SRC = ./source
DIR_OBJ = ./obj
DIR_BIN = ./bin


# 注意其他模块的路径,也在SRC里面
SRC = $(shell find $(DIR_SRC) -name *.cpp)
OBJ = $(patsubst %.cpp, ${DIR_OBJ}/%.o, $(notdir ${SRC}))


# Target Name
TARGET   = spfsforecast


BIN_TARGET = ${DIR_BIN}/${TARGET}


# Declaration of variables
CC       = gcc
CXX      = g++
CXXFLAGS = -g -Wall -O2 -DDEBUG
LDFLAGS  =


# Libs
LIBS    = -lmysqlclient -lpthread -L/usr/lib/mysql -lstdc++ -ldl
INCPATH = -I/usr/include/mysql


# Main target 由 .o文件 链接而成
$(BIN_TARGET):$(OBJ)
$(CXX) -o $@ $(OBJ) $(LIBS)




# .o文件 由 .cpp 编译而成
$(DIR_OBJ)/%.o:${DIR_SRC}/%.cpp
$(CXX) $(CXXFLAGS) -c $(INCPATH) $< -o $@




# 删除生成的 .o文件 以及 可执行程序
.PHONY:clean
clean:
rm -f ${DIR_OBJ}/*.o $(BIN_TARGET)



---------------------------------------------------------------------------------

    

    -----

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值