码迷,mamicode.com
首页 > 其他好文 > 详细

Makefile

时间:2018-02-01 00:18:32      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:操作   foo   rm -rf   nbsp   ret   src   turn   makefile   c中   

第一篇:

OBJS = ./persion.o

all : persion
@echo "version 03"
persion : $(OBJS)
g++ -o $@ $^
./%.o : ./%.cpp
g++ -o $@ -c $^

.PHONY : clean
.PHONY : install
clean:
rm -rf ./persion ./*.o
install:
tar -zcvf persion.tar.gz ./persion
@echo "make tar sucess"

 

第二篇:

srcs = $(wildcard ./src/*.cpp)
objs = $(patsubst %.cpp,%.o,$(srcs))


all:./obj/hello_world

./obj/hello_world:$(objs)
g++ $^ -o $@

$(objs):%.o : %.cpp
g++ -c $^ -o $@ -I ./inc


do:
@cp ./src/*.o ./obj
@rm ./src/*.o
.PHONY : clean
clean:
@rm -rf ./obj/*.o ./obj/hello_world

 

 

1、makefile里的函数

makefile里的函数使用,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样

return = $(functionname  arg1,arg2,arg3...)。

可能这里的‘$‘更像是从某个地址取值类似的操作。

 

2、 wildcard

使用:SRC = $(wildcard *.c ./foo/*.c) 

搜索当前目录及./foo/下所有以.c结尾的文件,生成一个以空格间隔的文件名列表,并赋值给SRC.当前目录文件只有文件名,子目录下的文件名包含路径信息,比如./foor/bar.c。

 

3、notdir

使用:SRC = $(notdir wildcard)

去除所有的目录信息,SRC里的文件名列表将只有文件名。

 

4、patsubst

使用:OBJ = $(patsubst %.c %.o $(SRC)) 

patsubst是patten substitude的缩写,匹配替代的意思。这句是在SRC中找到所有.c 结尾的文件,然后把所有的.c换成.o。

 

Makefile

标签:操作   foo   rm -rf   nbsp   ret   src   turn   makefile   c中   

原文地址:https://www.cnblogs.com/nanqiang/p/8394919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!