写一个makefile
来源:互联网 发布:淘宝手机收藏链接地址 编辑:程序博客网 时间:2024/06/05 10:04
muduo project在/home/pei/Desktop
目录结构大概是这样的,
muduo/base/BlockingQueue.h
muduo/base/test/BlockingQueue_test.cc
要把生成的obj文件放在muduo/base/test/obj/BlockingQueue_test.o
把生成的可执行文件放在muduo/base/test/bin/BlockingQueue_test
把makefile文件放在muduo/base/test/makefile
有点诡异是不是。。
DIR_INC = /home/pei/Desktop/ #../../../DIR_SRC = ./DIR_OBJ = ./obj/DIR_BIN = ./bin/INC = ${DIR_INC}muduo/base/BlockingQueue.hSRC = ${DIR_SRC}BlockingQueue_test.cc OBJ = ${DIR_OBJ}BlockingQueue_test.o BIN = ${DIR_BIN}BlockingQueue_test${BIN}: ${OBJ} g++ -pthread ${OBJ} -o ${BIN}${OBJ}: ${SRC} g++ -c ${SRC} -pthread -o ${OBJ} -I ${DIR_INC}.PHONY:cleanclean: rm ${BIN} ${OBJ} -fr #find ${DIR_OBJ} -name BlockingQueue_test.o -exec rm -rf {} \;
然后make
执行一下生成的可执行文件
还可以make clean一下
收工。
参考:
一个最简单的helloword
http://www.cnblogs.com/jacklikedogs/p/4125317.html
how to write makefile
http://seisman.info/how-to-write-makefile.html
-pthread和-pthread
http://blog.csdn.net/g446868263/article/details/6857840
g++ -I 等同于 vs中的包含目录
cmake practice
http://sewm.pku.edu.cn/src/paradise/reference/CMake%20Practice.pdf
notdir
dir1 = ${notdir ${SRC1}}
功能:去除所有的目录信息,SRC里的文件名列表将只有文件名。
patsubst OBJ1 = ${DIR_OBJ}${patsubst %.cc,%.o,${dir1}}
功能:patsubst是patten substitude的缩写,匹配替代的意思。这句是在dir1中找到所有.cc 结尾的文件,然后把所有的.cc换成.o。
DIR_INC = /home/pei/Desktop/ #../../../DIR_SRC = ./DIR_OBJ = ./obj/DIR_BIN = ./bin/#INC1 = ${DIR_INC}muduo/base/BlockingQueue.h SRC1 = ${DIR_SRC}BlockingQueue_test.cc dir1 = ${notdir ${SRC1}}OBJ1 = ${DIR_OBJ}${patsubst %.cc,%.o,${dir1}}BIN1 = ${DIR_BIN}BlockingQueue_test#INC2 = ${DIR_INC}muduo/base/BoundedBlockingQueue.h SRC2 = ${DIR_SRC}BoundedBlockingQueue_test.cc dir2 = ${notdir ${SRC2}}OBJ2 = ${DIR_OBJ}${patsubst %.cc,%.o,${dir2}}BIN2 = ${DIR_BIN}BoundedBlockingQueue_testTARGET = ${BIN1} ${BIN2}all : ${TARGET}${BIN1}: ${OBJ1} g++ -pthread ${OBJ1} -o ${BIN1}${OBJ1}: ${SRC1} g++ -c ${SRC1} -pthread -o ${OBJ1} -I ${DIR_INC}${BIN2}: ${OBJ2} g++ -pthread ${OBJ2} -o ${BIN2}${OBJ2}: ${SRC2} g++ -c ${SRC2} -pthread -o ${OBJ2} -I ${DIR_INC}.PHONY:cleanclean: find ${DIR_OBJ} -name *.o -exec rm -rf {} \; find ${DIR_BIN} -type f | xargs rm -fr
题外话:
有时候真的好气,但却不由自主的微笑。
- 自己动手写一个Makefile
- 快速写一个makefile
- 如何写一个makefile
- 写一个makefile
- 写一个简单的makefile
- 写一个makefile(二)
- 写一个简单的makefile
- 写一个简单的makefile
- 自己写的一个通用Makefile
- 如何写一个精简的Makefile
- 今天写的一个makefile,备份下
- 自己写一个简单通用的Makefile
- 自己写一个简单通用的Makefile
- 写一个常用的通用makefile
- 如何写一个最简单的MAKEFILE
- “万能makefile”写法详解,一步一步写一个实用的Makefile
- 写 Makefile!
- 写Makefile
- 使用OB缓存实现静态化
- tensorflow学习笔记二---k近邻分类器
- ElementaryOS 0.4快速配置工具
- 菊花台
- Flume的安装及简单的使用(二)
- 写一个makefile
- Linux下安装网络软件的步骤
- 3,单例模式
- make (;区别 + 目标变量)
- Linux上安装wine qq的方法
- 解决CentOS 7不能上网,访问Centos7服务器请求超时问题
- Modeling Deformable Objects from a Single Depth Camera
- 假设你的键盘只有以下键: A Ctrl + A Ctrl + C Ctrl + V
- C++实战之OpenCL 并行优化编程从零学起系列文章