linux: 几个常用makefile模板
2015-11-01 19:27
609 查看
不才,总结个人常用makefile模板,以备后用。
1、编译动态库
[plain] view
plaincopy
#############################################################
# Makefile for shared library.
# 编译动态链接库
#############################################################
#set your own environment option
CC = g++
CC_FLAG = -D_NOMNG -D_FILELINE
#set your inc and lib
INC =
LIB = -lpthread -L./ -lsvrtool
#make target lib and relevant obj
PRG = libsvrtool.so
OBJ = Log.o
#all target
all:$(PRG)
$(PRG):$(OBJ)
$(CC) -shared -o $@ $(OBJ) $(LIB)
.SUFFIXES: .c .o .cpp
.cpp.o:
$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o
.PRONY:clean
clean:
@echo "Removing linked and compiled files......;
rm -f $(OBJ) $(PRG)
2、编译静态库
[plain] view
plaincopy
#############################################################
# Makefile for static library.
# 编译静态链接库
#############################################################
#set your own environment option
CC = g++
CC_FLAG = -D_NOMNG -D_FILELINE
#static library use 'ar' command
AR = ar
#set your inc and lib
INC =
LIB = -lpthread -L./ -lsvrtool
#make target lib and relevant obj
PRG = libsvrtool.a
OBJ = Log.o
#all target
all:$(PRG)
$(PRG):$(OBJ)
${AR} rv ${PRG} $?
.SUFFIXES: .c .o .cpp
.cpp.o:
$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o
.PRONY:clean
clean:
@echo "Removing linked and compiled files......"
rm -f $(OBJ) $(PRG)
3、可执行程序
[plain] view
plaincopy
###########################################
#Makefile for simple programs
###########################################
INC=
LIB= -lpthread
CC=CC
CC_FLAG=-Wall
PRG=threadpooltest
OBJ=CThreadManage.o CThreadPool.o CThread.o CWorkerThread.o threadpooltest.o
$(PRG):$(OBJ)
$(CC) $(INC) $(LIB) -o $@ $(OBJ)
.SUFFIXES: .c .o .cpp
.cpp.o:
$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o
.PRONY:clean
clean:
@echo "Removing linked and compiled files......"
rm -f $(OBJ) $(PRG)
随机组合、举一反三会写出适合项目的makefile
1、编译动态库
[plain] view
plaincopy
#############################################################
# Makefile for shared library.
# 编译动态链接库
#############################################################
#set your own environment option
CC = g++
CC_FLAG = -D_NOMNG -D_FILELINE
#set your inc and lib
INC =
LIB = -lpthread -L./ -lsvrtool
#make target lib and relevant obj
PRG = libsvrtool.so
OBJ = Log.o
#all target
all:$(PRG)
$(PRG):$(OBJ)
$(CC) -shared -o $@ $(OBJ) $(LIB)
.SUFFIXES: .c .o .cpp
.cpp.o:
$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o
.PRONY:clean
clean:
@echo "Removing linked and compiled files......;
rm -f $(OBJ) $(PRG)
2、编译静态库
[plain] view
plaincopy
#############################################################
# Makefile for static library.
# 编译静态链接库
#############################################################
#set your own environment option
CC = g++
CC_FLAG = -D_NOMNG -D_FILELINE
#static library use 'ar' command
AR = ar
#set your inc and lib
INC =
LIB = -lpthread -L./ -lsvrtool
#make target lib and relevant obj
PRG = libsvrtool.a
OBJ = Log.o
#all target
all:$(PRG)
$(PRG):$(OBJ)
${AR} rv ${PRG} $?
.SUFFIXES: .c .o .cpp
.cpp.o:
$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o
.PRONY:clean
clean:
@echo "Removing linked and compiled files......"
rm -f $(OBJ) $(PRG)
3、可执行程序
[plain] view
plaincopy
###########################################
#Makefile for simple programs
###########################################
INC=
LIB= -lpthread
CC=CC
CC_FLAG=-Wall
PRG=threadpooltest
OBJ=CThreadManage.o CThreadPool.o CThread.o CWorkerThread.o threadpooltest.o
$(PRG):$(OBJ)
$(CC) $(INC) $(LIB) -o $@ $(OBJ)
.SUFFIXES: .c .o .cpp
.cpp.o:
$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o
.PRONY:clean
clean:
@echo "Removing linked and compiled files......"
rm -f $(OBJ) $(PRG)
随机组合、举一反三会写出适合项目的makefile
相关文章推荐
- Centos6.7 Centos7.0 安装OpenVSwitch痛苦经历
- 嵌入式linux学习笔记(一)
- centos安装时各个版本的含义
- LINUX_source
- linux 套接口缓存
- 在linux下修改文件夹机器子文件夹的权限
- Linux下github的使用
- Ubuntu Linux Create and Add Swap File Tutorial
- Linux1:Linux概述
- linux下字符串处理工具一:grep
- [Linux学习笔记] Linux常用命令 - 番外篇(Shell使用技巧)
- linux mysql 操作命令
- How To: set udev rule for setting the disk permission on ASM disks when using multipath on Linux 6.x
- CentOS下MySQL的安装和修改用户密码
- Linux第七次实验笔记
- Linux硬连接和软连接的区别
- 使用Linux(CentOS) 搭建SVN服务器全攻略
- vi编辑器用法总结
- ubuntu 安装后要做的6件事
- Linux下用c语言实现whereis.