opencv下一键编译程序的Makefile

有多个头文件和传文件的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)


版权声明:本文为komonder原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。