Makefile的C++的一个模板,可用于根据不同源文件,生成多个可执行文件 。

CC = g++

DIR_INC = ./include
DIR_SRC = ./src
DIR_OBJ = ./obj
DIR_BIN = ./bin # SRC = $(wildcard ${DIR_SRC}/*.cpp )
SRC_Server = $(wildcard ${DIR_SRC}/server.cpp ${DIR_SRC}/test1.cpp)
SRC_Client = $(wildcard ${DIR_SRC}/client.cpp ${DIR_SRC}/test1.cpp) OBJ_server = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC_Server} ))
OBJ_client = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC_Client} )) TARGET_Server = tcp_server
TARGET_Client = tcp_client BIN_TARGET_Server = ${DIR_BIN}/${TARGET_Server}
BIN_TARGET_Client = ${DIR_BIN}/${TARGET_Client} TARGET = ${DIR_BIN}/${TARGET_Server} ${DIR_BIN}/${TARGET_Client}
all: $(TARGET)
CFLAGS = -g -O2 -Wall -I${DIR_INC} ${DIR_OBJ}/%.o : ${SRC_Server} ${SRC_Client}
@echo 开始编译文件
$(CC) ${CFLAGS} -c $?
-mv *.o $(DIR_OBJ)/
@echo 编译文件完成 ${BIN_TARGET_Client} : ${OBJ_client}
@echo 链接生成文件目标文件
${CC} ${CFLAGS} ${OBJ_client} -o $@ ${BIN_TARGET_Server} : ${OBJ_server}
@echo 链接生成文件目标文件
${CC} ${CFLAGS} ${OBJ_server} -o $@ .PHONY : clean run
clean:
@echo 删除编译结果文件
-rm -f ${DIR_OBJ}/*.o ${BIN_TARGET_Server} ${BIN_TARGET_Client} run:
@echo 执行文件
${BIN_TARGET}

-W 后加 -Wno-unused 可以屏蔽unused警告信息。

Makefile模板(C++)的更多相关文章

  1. 我所使用的一个通用的Makefile模板

    话不多说,请看: 我的项目有的目录结构有: dirls/ ├── include │   └── apue.h ├── lib │   ├── error.c │   ├── error.o │   ...

  2. Hello World 的makefile模板及其分析

    makefile模板: ifeq ($(KERNELRELEASE),) //判断KERNELRELEASE是否为空,只有执行make的当前目录为内核源代码目录时,该变量才不为空. KERNELDIR ...

  3. 引用 模块编译Makefile模板

    本文转载自geyingzhen<模块编译Makefile模板>   引用 geyingzhen 的 模块编译Makefile模板 ifneq ($(KERNELRELEASE), ) // ...

  4. linux: 几个常用makefile模板

    不才,总结个人常用makefile模板,以备后用. 1.编译动态库 ############################################################# # Ma ...

  5. 【原创】支持同时生成多个main函数 makefile 模板

    背景: 去年做项目的时候,由于有需要编译出多个可执行文件的需求,修改了Makefile使其支持生成多个结果(编译多个含有main函数的文件),但总觉得自己的实现不够完美. 今年又遇到这样需求的时候,可 ...

  6. 1、编写一个简单Makefile模板

    一.Makefile简介 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译, ...

  7. g++编译的makefile模板库和脚本

    编译C++文件,特别是多文件的时候,经常要找模板,这里为了后面方便,就自己做了一个模板. makefile模板:Makefile # Object files to either reference ...

  8. makefile编写---.c .cpp 混合编译makefile 模板

    # c.cpp混合编译的makefile模板 # # BIN = client_system BASE_INSTALL_DIR := /opt/arm-2009q1 BUILD_TOOL_DIR := ...

  9. 万能makefile模板

    这里一份万能makefile模板,写opencv项目时候使用的. 前提是提前配置好 包管理工具 pkg 然后就不用每次都去 -lopencv_xxx了. ####################### ...

  10. C、C++的Makefile模板

    目录 Makefile模板 用法 编译C程序 编译C++程序 其他 Tips Makefile模板 CC = gcc LD = $(CC) TARGET = $(notdir $(CURDIR)) S ...

随机推荐

  1. python之三行代码发送邮件

    (1)首先进入cmd,输入pip install yagmail (2)思路:1 .连接服务器:yagmail.SMTP(邮箱账号,邮箱密码,邮箱服务器地址,邮箱服务器端口) 2 .准备正文内容:co ...

  2. $.each()、$.map()区别浅谈

    遍历应该是各种语言中常会用到的操作了,实现的方法也很多,例如使用for.while等循环语句就可以很轻松的做到对数组或对象的遍历,今天想讲的不是它们,而是简单方便的遍历方法. 大致的整理了一下,经常用 ...

  3. jquery中Json操作

    在开发中,我们有可能拿到的不是全的json,而是一部分json格式的数据,这个时候我们需要将其强转为json对象 第一种方法:使用jquery中的$.parseJSON(),但是它对json数据格式的 ...

  4. Java8-2-Lambda表达式实战-一句话实现Map中按照Value排序

    在上一讲中, 我们着重的讲了表达式的一些基础知识和基本的使用, 今天我们来实战一把, 对Map的Value值排序进行简化. 在以前的思路我们的做法如下: /** * * Map根据value排序; * ...

  5. 有关CSS的overflow和border-radius的那些事,你的圆角被覆盖了吗?

    事件起因 最初是网友的一个提问,来自于我的知识星球社区: 说实话,不得不佩服这个网友的眼力,这么小的细节都能发现.不过这也正是 FineUI 一直前进的动力,来自社区的监督和促进. 从截图上看,貌似圆 ...

  6. TypeError: argument 1 must be an integer, not _subprocess_handle/OSError: [WinError 87]

    Error Msg: Traceback (most recent call last): File "c:\python27\lib\site-packages\celery\worker ...

  7. (light oj 1102) Problem Makes Problem (组合数 + 乘法逆元)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1102 As I am fond of making easier problems, ...

  8. Echarts学习之路2(基本配置项)

    title:标题组件,包含主标题和副标题. title:{ text:"",//主标题 link:"",//主标题文本超链接 target:"&quo ...

  9. JS中让新手倍感震惊、违反直觉、出乎意料、的一些知识点汇总记录

    本文记录在自己学习js过程中,违反直觉,出乎意料,倍感震惊的知识点.当然,不了解这个知识点,很容易出错,因为毕竟违反直觉,出乎意料,倍感震惊嘛! 1. 两个内容一样的数组竟然不相等? var a = ...

  10. Linux 安装多个版本JDK并设置默认版本

    1 官网下载JDK版本 jdk-8u181-linux-x64.tar.gz 2 利用ssh工具上传安装包到Linux系统 传至:/usr/local 3 Linux用户安装的程序一般放在 /usr/ ...