- 简介makefile是工程管理器,可以管理较多的文件,也是一个自动编译管理器,可以减少编译的工作量。通过读取makefile文件来实现。
makefile文件有自己的一套编写规则,详细编写方法见《GNU make中文手册》。
makefile格式:
target : dependency_files
<TAB>command碰到TAB make才认为是命令
例子:
hello.o : hello.c hello.h - 变量定义和替换定义:VAR = var
引用:$(VAR)
全文件有效 - 自动变量$< 第一个依赖文件
$^ 所有依赖文件
$@ 目标文件
本条规则内替换有效 - make命令选项-C <目录> 读入指令目录下的Makefile文件
-f <makefile> 读入当前目录下的指定的Makefile文件 - 预定义变量CC 编译器的名称,默认为cc
RM 文件删除程序的名称,默认为rm -f - make的函数
patsubst模式替换函数
格式:$(patsubst PATTERN,REPLACEMENT,TEXT) 功能:搜索“TEXT”中以空格分开的单词,将否符合模式“TATTERN”替换为“REPLACEMENT” 。参数“PATTERN”中可以使用模式通配符“%”来代表一个单词中的若干字符。如果参数“REPLACEMENT”中也包含一个“%” ,那么“REPLACEMENT”中的“%”将是“TATTERN”中的那个“%”所代表的字符串。在“TATTERN”和“REPLACEMENT”中,只有第一个“%”被作为模式字符来处理,后续的作为字符本上来处理。在两个参数中当使用第一个“%”本是字符本身时,可使用反斜杠“\”对它进行转义处理(转义处理的机制和使用静态模式的转义一致)。
函数说明:参数“TEXT”单词之间的多个空格在处理时被合并为一个空格,但前导和结尾空格忽略。
返回值:替换后的新字符串。
示例:
$(patsubst %.c,%.o,x.c.c bar.c) 把字串“x.c.c bar.c”中以.c 结尾的单词替换成以.o 结尾的字符。函数的返回结果是“x.c.o bar.o”
wildcard获取匹配模式文件名函数
格式:$(wildcard PATTERN) 功能:列出当前目录下所有符合模式“PATTERN”格式的文件名。
返回值:空格分割的、存在当前目录下的所有符合模式“PATTERN”的文件名。
函数说明:“PATTERN”使用shell可识别的通配符,包括“?”(单字符)、“*”(多字符)等。
示例:
$(wildcard *.c) 返回值为当前目录下所有.c 源文件列表。 - 其他echo 命令回显
通常,make 在执行命令行之前会把要执行的命令行进行输出。我们称之为“回显”,就好像我们输入命令执行一样。
如果要执行的命令行以字符“@”开始,则 make在执行时这个命令就不会被回显。典型的用法是我们在使用“echo”命令输出一些信息时。如:
@echo 开始编译XXX模块...... 当 make执行时,将输出“开始编译 XXX 模块......”这个信息。如果在命令行之前没有字符“@”,那么,make的输出就是:
echo编译XXX模块......
编译XXX模块......
makefile 使用 opencv
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Python OpenCV #2 - OpenCV中的GUI功能
本文介绍了OpenCV的基本方发,包括图像读取、显示和写入。
python ide OpenCV -
makefile 添加opencv库 makefile .c=.o
Makefile带来直接好处就是——“自动化编译”。一旦写好,只需要一个make命令,整个工程完全自动编译,所以十分方便。而Makefile文件就是告诉make命令怎么样地去编译和链接程序。但是想要比较灵活的运用它,还是先要熟悉一些关于系统对程序编译和链接的知识。 1.一个简单的makefile例子假设一个程序有两个文件file1.c,file2.c,每个文件都包含head
makefile 添加opencv库 makefile 生成.o makefile文件 makefile文件编写 修改.h makefile -
makefile使用
源代码如下:/*main.c*/#include "mytool1.h"#include "mytool2.h"int main()...
后缀 目标文件 文件名 依赖关系 #include