Makefile文件
模板
CC = g++
CFLAGS += -g -O3 -Wall
INC += -I. `pkg-config --cflags opencv`
LIBS += `pkg-config --libs opencv`
TARGET = main.bin
OBJS += main.o \
config.o
all:$(TARGET)
$(TARGET):$(OBJS)
$(CC) $(INC) $(CFLAGS) $(OBJS) -o $(TARGET) $(LIBS)
$(OBJS):%.o:%.cpp
$(CC) $(INC) $(CFLAGS) -c $< -o $@
.PHONY:clean
clean:
rm -r *.o $(TARGET)
说明
(OBJS): (CC) (INC) (CFLAGS) -c <−o <script type="math/tex" id="MathJax-Element-217">< -o </script>@
上面代码为模式匹配,从OBJS中进行匹配。
%.o文件表示匹配到的.o文件,依赖中的%替换为模式中.o前面的内容。 即 匹配到main.o则%取main,补充完成main.cpp作为依赖。
命令中的
<表示以上模式匹配中的依赖,
<script type="math/tex" id="MathJax-Element-218">< 表示以上模式匹配中的依赖, </script>@ 表示以上模式匹配中的目标。
pkg-config --libs opencv
是一个shell命令,可以在shell中运行,只要安装了opencv,可以返回opencv的库的路径。注意这段指令前后的两个符号,是数字1左边那个按键的“ ` ”,不是单引号“ ‘ ”