有多个头文件和传文件的opencv小伙伴可以使用本Makefile。只需要将所有的c/c++文件和头文件放在同一个文件下makefile就可以自己去找依赖,前提是opencv安装成功而且配置好环境,如果没配置好文件的请参考我的另外一个文章点击打开链接。
因为makefile里面有tab的要求,所以如果不能运行的请到https://download.csdn.net/download/komonder/10368950下载。
######################################
#
######################################
#source file
#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
SOURCE := $(wildcard *.c) $(wildcard *.cpp)
OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))
#target you can change VideoHsv to what you want
#目标文件名,输入任意你想要的执行文件名
TARGET := camera
#compile and lib parameter
#编译参数
#CC 编译器
#LIBS 链接器的库文件
#LDFLAGS gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置
#DEFINES 宏定义
#INCLUDE 包含
#CFLAGS 表示用于 C 编译器的选项
#CXXFLAGS 表示用于 C++ 编译器的选项
CC := g++
LIBS := $(shell pkg-config --libs opencv)
#LIBS := pkg-config --cflags --libs opencv
LDFLAGS :=
DEFINES :=
#编译包含的头文件所在目录
INCLUDE := -I. $(shell pkg-config --cflags opencv)
CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE)
CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H
#i think you should do anything here
#下面的基本上不需要做任何改动了
.PHONY : everything objs clean veryclean rebuild
everything : $(TARGET)
all : $(TARGET)
objs : $(OBJS)
rebuild: veryclean everything
clean :
rm -fr *.so
rm -fr *.o
veryclean : clean
rm -fr $(TARGET)
$(TARGET) : $(OBJS)
$(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS)