花了一天时间,把TLD算法的Linux环境搭建起来,尝试在摄像头中追踪自己的头像,欣喜之余,成就感更甚。很喜欢这个方向,以后也希望慢慢的能转到这个方向,慢慢积累,向大牛们靠近。
上学的时候为找工作,临时抱佛脚学过一段linux编程,今天写了一段代码,竟然不会写MakeFile,写段日志备忘。
1、MakeFile的规则
在讲述这个MakeFile之前,还是让我们先来粗略地看一看MakeFile的规则。
target ... : prerequisites ...
command
...
...
target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)
prerequisites就是,要生成那个target所需要的文件或是目标。
command也就是make需要执行的命令。(任意的Shell命令)
这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。
注意:command前面是tab分割符,不能用空格,否则会出现:“makefile:2: *** 遗漏分隔符 。 停止”的错误提示。
2、附上OpenCV的编译的MakeFile
//=====================================
OBJS=main.o
CC=g++
CFLAGS=-Wall -O -g `pkg-config --cflags opencv`
LIBS = `pkg-config --libs opencv`
LightFlow : $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o LightFlow $(LIBS)
main.o : main.cpp
$(CC) $(CFLAGS) -c main.cpp -o main.o
clean:
rm -rf *.o LightFlow
//=====================================