##################################################
#1.简单测试
#同一个文件夹下共有func.h、func.c、main.c三个文件
##################################################
#2.通用模板
#对文件进行分类,分为头文件、源文件、目标文件、可
#执行文件,通过Makefile将产生的目标文件放在目标目
#录下,可执行文件放到可执行目录下。
##################################################
##################################################
#--Makefile
#--src目录
# --main.cpp
# --func.cpp
# --func.h
# --head目录
# --head.cpp
# --head.h
#--obj目录
##################################################
##################################################
#后面的就是连接opencv库。
##################################################
##################################################
#使用CMake编译opencv的代码
#新建CMakeLists.txt
#命令1:cmake . #“.”表示当前目录
#命令2:make
##################################################
#1.简单测试
#同一个文件夹下共有func.h、func.c、main.c三个文件
##################################################
CC = gcc CFLAGS = -g -Wall main:main.o func.o $(CC) main.o func.o -o main main.o:main.c $(CC) $(CFLAGS) -c main.c -o main.o func.o:func.c $(CC) $(CFLAGS) -c func.c -o func.o clean: rm -rf *.o##################################################
#2.通用模板
#对文件进行分类,分为头文件、源文件、目标文件、可
#执行文件,通过Makefile将产生的目标文件放在目标目
#录下,可执行文件放到可执行目录下。
##################################################
DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./obj DIR_BIN = ./bin SRC = $(wildcard ${DIR_SRC}/*.c) OBJ = $(patsubst %.c,${DIR_OBJ}/%.o,$(notdir ${SRC})) TARGET = main BIN_TARGET = ${DIR_BIN}/${TARGET} CC = gcc CFLAGS = -g -Wall -I${DIR_INC} ${BIN_TARGET}:${OBJ} $(CC) $(OBJ) -o $@ ${DIR_OBJ}/%.o:${DIR_SRC}/%.c $(CC) $(CFLAGS) -c $< -o $@ .PHONY:clean clean: find ${DIR_OBJ} -name *.o -exec rm -rf {} \;
##################################################
#--Makefile
#--src目录
# --main.cpp
# --func.cpp
# --func.h
# --head目录
# --head.cpp
# --head.h
#--obj目录
##################################################
DIR_OBJ = ./obj DIR_SRC = ./src SRC = $(wildcard ${DIR_SRC}/*.cpp ${DIR_SRC}/head/*.cpp) OBJ = $(patsubst %.cpp, ${DIR_OBJ}/%.o, $(notdir $(SRC))) INC = $(patsubst %, -I%, $(shell find src -name '[a-zA-Z0-9]*'.h)) BIN_TARGET = main CC = g++ CFLAGS = -g -Wall $(INC) ${BIN_TARGET}: ${OBJ} $(CC) $(OBJ) -o $@ ${DIR_OBJ}/%.o: ${DIR_SRC}/head/%.cpp $(CC) $(CFLAGS) -c $< -o $@ ${DIR_OBJ}/%.o: ${DIR_SRC}/%.cpp $(CC) $(CFLAGS) -c $< -o $@ # 防止命名冲突例如有名为clean的文件 .PHONY:clean clean: find ${DIR_OBJ} -name *.o -exec rm -rf {} \;
##################################################
#后面的就是连接opencv库。
##################################################
(CPLUS) main.cpp $(CFLAGS) -o $(TARGET) $(OBJS) $(INCLS) $(LIBS) -lml -lcvaux -lhighgui -lcv -lcxcore -lpthread -lrt -lm
##################################################
#使用CMake编译opencv的代码
#新建CMakeLists.txt
#命令1:cmake . #“.”表示当前目录
#命令2:make
##################################################
project( DisplayImage ) find_package( OpenCV REQUIRED ) add_executable( DisplayImage DisplayImage ) target_link_libraries( DisplayImage ${OpenCV_LIBS} )