首页 > 系统服务 > 详细

linux Makefile编写的整理

时间:2015-11-06 01:31:47      阅读:310      评论:0      收藏:0      [点我收藏+]

最近将Makefile的编写进行了整理和提炼了一下,大致分为五个步骤:

编译总共为五个部分
 1.设置编译环境 set compile environment
 2.获取要编译的源文件,以及把源文件转换为目标文件 ( 源文件和目标文件) source to obj
 3.将文件编译为目标文件 OBJing
 4.目标文件链接成可执行文件或(打包为)动态库,或静态库  linking
 5.其他方面 clean等

下面给出一个简单的makefile模板(实际项目中可依照此模板进行扩展):

来看看这个模板:

 1 ## 设置编译环境
 2 CC:=gcc
 3 CXX:=g++
 4 BIN:= libdemo.so
 5 FLAGS             := -Wall -g -fPIC
 6 CXX_FLAGS     := -Wall -g -pipe -fPIC -shared -export-dynamic
 7 LIB                   := -L../common/test/ -ltest
 8 INCLUDE_PATH    := -I/common/ -I../common/test/ 
 9 
10 ## 获取要编译的源文件,以及把源文件转换为目标文件
11 SOURCES            := $(wildcard *.c *.cpp)
12 OBJS             := $(patsubst %.c, %.o, $(patsubst %.cpp,%.o,$(SOURCES)) )
13 
14 ## 将源文件编译为目标文件
15 %.o: %.c
16     $(CC) $(FLAGS) -c $< -o $@ $(INCLUDE_PATH)
17 
18 %.o:%.cpp
19     $(CXX) $(FLAGS) -c $< -o $@ $(INCLUDE_PATH)
20 
21 ## 将目标文件链接成可执行文件或动态库,或静态库
22 $(BIN) : $(OBJS) 
23     $(CXX) $(CXX_FLAGS) $(OBJS) $(INCLUDE_PATH) $(LIB) -o $(BIN)
24     chmod a+x $(BIN)
25 
26 ## 其他
27 clean:
28     rm -rf *.o $(BIN)
29       
30 install:
31     cp $(BIN) ../common/bin

 

当然,makefile的入门还是推荐陈皓老师的<<跟我一起写makefile>>,希望对大家有所帮助.

 

linux Makefile编写的整理

原文:http://www.cnblogs.com/panada/p/4941272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!