Makefile
文章平均质量分 57
coderlang
34+ 程序员,CTO,全栈工程师,搬砖 11 年,薪资翻20倍
展开
-
Makefile初学记录
1、自动变量的使用$@:用于表示一个规则中的目标。当一个规则中有多个目标时,$@所指的是其中任何造成规则命令被运行的目标。$^:表示的是规则中的所有先决条件$如下所示代码:.PHONY:allall: first second third @echo "\$$@ = $@" @echo "$$^ = $^" @echo "原创 2013-05-03 11:36:58 · 1045 阅读 · 0 评论 -
Makefile和shell脚本的区别
在Makefile可以调用shell脚本,但是Makefile和shell脚本是不同的。本文尝试归纳下Makefile和shell脚本的不同1、 shell中所有引用以$打头的变量其后要加{},而在Makefile中的变量是以$打头的后加()或者{}。如下所示:MakefilePATH="/data/"SUBPATH=$(PATH)ShellPATH="/data/"SUBP原创 2013-05-03 14:20:52 · 2257 阅读 · 1 评论 -
Makefile中的函数
函数是Makefile中的另一个利器,尽管使用了模式规则使得Makefile变得更加简洁,但是在Makefile中还需要指定每个项目源文件,这带来了不好的麻烦,如下代码所示.PHONY: allCC = gccRM = rmEXE = simpleOBJS = main.o foo.o$(EXE) : $(OBJS) $(CC) -o $@ $^ %.o :原创 2013-05-03 13:44:08 · 1230 阅读 · 0 评论 -
Makefile中的函数(二)
original = foo.c bar.cstripped := $(strip $(original))all: @echo $(stripped)上篇文章 主要介绍了Makefile中的wildcard和patsubst函数,本文继续详细介绍下,Makefile中的主要函数,及其用法1、abspath函数用法:$(abspath _nam原创 2013-05-03 15:27:33 · 15121 阅读 · 0 评论 -
makefile中定义宏进行编译
最近编译了一个h.264的开源软件,发现其中一个错误是没有定义变量,详细查看了下该文件时选择编译的,即采用了#ifdef USE_DISPLAY则编译该段代码,如果没有则不进行编译。此处,我们在源文件中没有进行定义,而是在makefile中进行定义的,下面写个小的测试代码,如下所示#include int main(){#ifdef USE_DISPLAY printf("def原创 2013-06-05 16:39:47 · 2168 阅读 · 0 评论