Makefile
欧阳海宾
这个作者很懒,什么都没留下…
展开
-
origin 函数
origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量。其语法是:$(origin)上面, 为变量的名字,而不是引用,所以一般没有 $ 字符在前。origin 函数通过返回值来告诉你 的出生情况。下面用实例说明:1. 当从来未定义过该变量时,origin函数返回 "undefined" 。如下面的 Makefile 代码:all:转载 2017-08-07 09:31:43 · 3332 阅读 · 0 评论 -
wildcard函数
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...)。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符的转载 2017-08-07 10:16:15 · 735 阅读 · 0 评论 -
addprefix函数
函数名称:加前缀函数—addprefix。函数功能:为“NAMES…”中的每一个文件名添加前缀“PREFIX”。参数“NAMES…”是空格分割的文件名序列,将“SUFFIX”添加到此序列的每一个文件名之前。返回值:以单空格分割的添加了前缀“PREFIX”的文件名序列。函数说明:示例: $(addprefix src/,foo bar) 返回值为“src/foo sr转载 2017-08-07 10:55:02 · 5352 阅读 · 1 评论 -
-f标志(Makefile)
可以使用别的文件名来书写Makefile,比如:“Make.Linux”,“Make.Solaris”,“Make.AIX”等,如果要指定特定的Makefile,你可以使用make的“-f”和“--file”参数,如:make -f Make.Linux或make --file Make.AIX。原创 2017-08-07 11:08:46 · 1665 阅读 · 0 评论 -
一步一步写Makefile(2):shell命令,通配符*和%区别,文件路径搜索vpath VPATH
#################6:Makefile中也可以插入shell命令################variable=main.o test1.o test2.omain:$(variable) cc -omain $(variable)main.o:test1.o test2.o test1.h clean: rm *.omai原创 2017-08-24 10:26:02 · 1366 阅读 · 0 评论 -
一步一步写Makefile(1):概念,变量,自动推导,Makefile相互引用
一步一步写Makefile概念: Make命令执行时是一步一步去解析Makefile文件内容1. 每一个源文件都对应一个.o中间文件2. 链接时就是链接这些中间文件里的全局变量和函数,如extern变量,包含了别的源文件里的函数声明并且用了这个函数,链接时就要去找这个函数的实现了3. 中间文件.o太多,于是就有了库.a文件了,他是多个.o文件的打包,这样就不用指明很原创 2017-08-23 15:43:33 · 403 阅读 · 0 评论 -
一步一步写Makefile(3):伪目标,静态规则,shell命令和去回显,嵌套执行Makefile
#################9:在Makefile中伪目标#################.PHONY:main 放这里和放下面效果完全不一样,放这里会产生main的可执行文件,不太清楚二者区别main:main.o test1.o test2.o.PHONY:mainmain.o:test1.h.PHONY:cleanclean: rm *.o main #在M原创 2017-08-24 15:23:56 · 377 阅读 · 0 评论 -
linux模块驱动简单的Makefile
Linux驱动一般以模块module的形式来加载,首先需要把驱动编译成模块的形式。简单的例子,Begin of hello.c file[cpp] view plain copy print?#include #include #include static int __init test_init(void) { p转载 2017-07-20 10:58:21 · 243 阅读 · 0 评论