makefile opencv的案例

轉載自:https://www.cnblogs.com/buyizhiyou/p/10119721.html

CXX = g++
LIBS +=`pkg-config --libs opencv`
INC +=`pkg-config --cflags opencv`
CPPFLAGS += -g -std=c++11 -Wall

SRCS = detect.cpp
TARGET = detect
OBJS = detect.o

$(TARGET):$(OBJS)
    $(CXX) $(INC) $(CPPFLAGS) $(OBJS) -o $(TARGET) $(LIBS)
$(OBJS):%.o:%.cpp
    $(CXX) $(INC) $(CPPFLAGS) -c $< -o $@

.PHONY:clean
clean:
    rm -r *.o $(TARGET)

 

CXX = g++
LDLIBS += `pkg-config --libs opencv`
INC += `pkg-config --cflags opencv`
CPPFLAGS += -g -std=c++11 -Wall -I./

TARGET = edges
OBJS = edges.o label.o
SRCS = edges.cpp label.cpp
HEAD = label.hpp

$(TARGET):$(OBJS)
    $(CXX) -o $(TARGET) $(OBJS) $(LDLIBS)

%.o:%.c $(HEAD)
    $(CXX) $(INC) $(CPPFLAGS) -c $> -o $@

.PHONY:clean
clean:
    rm -r *.o

 

CXX = g++
INC += `pkg-config --cflags opencv`
LIBS += `pkg-config --libs opencv`


#dir
DIR_INC = ./include
DIR_SRC = ./src
DIR_OBJ = ./obj
DIR_BIN = ./bin

CPPFLAGS += -g -std=c++11 -Wall -I${DIR_INC}

#SRC = $(wildcard ${DIR_SRC}/*.cpp) 
SRC1 = ${DIR_SRC}/detect.cpp ${DIR_SRC}/tools.cpp 
OBJ1 = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC1})) 
BIN_TARGET1 = ${DIR_BIN}/detect

SRC2 = ${DIR_SRC}/detect2.cpp ${DIR_SRC}/tools.cpp 
OBJ2 = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC2})) 
BIN_TARGET2 = ${DIR_BIN}/detect2

SRC3 = ${DIR_SRC}/detect_circle.cpp ${DIR_SRC}/tools.cpp 
OBJ3 = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC3})) 
BIN_TARGET3 = ${DIR_BIN}/detect_circle

SRC4 = ${DIR_SRC}/detect_circle2.cpp ${DIR_SRC}/tools.cpp 
OBJ4 = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC4})) 
BIN_TARGET4 = ${DIR_BIN}/detect_circle2

SRC5 = ${DIR_SRC}/hog_svm_test.cpp ${DIR_SRC}/tools.cpp 
OBJ5 = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC5})) 
BIN_TARGET5 = ${DIR_BIN}/hog_svm_test

SRC6 = ${DIR_SRC}/hog_svm_test2.cpp ${DIR_SRC}/tools.cpp 
OBJ6 = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC6})) 
BIN_TARGET6 = ${DIR_BIN}/hog_svm_test2

SRC7 = ${DIR_SRC}/hog_svm_test2.cpp ${DIR_SRC}/tools.cpp 
OBJ7 = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC7})) 
BIN_TARGET7 = ${DIR_BIN}/hog_svm_test3

detect:${BIN_TARGET1}

detect2:${BIN_TARGET2}

detect_circle:${BIN_TARGET3}

detect_circle2:${BIN_TARGET4}

hog_svm_test:${BIN_TARGET5}

hog_svm_test2:${BIN_TARGET6}

hog_svm_test3:${BIN_TARGET7}

# echo:
#     echo $(OBJ1)
#     echo $(BIN_TARGET)
#     echo $(notdir ${SRC1})

${BIN_TARGET1}:${OBJ1}
    $(CXX) -o $@  $(OBJ1)  $(LIBS)

${BIN_TARGET2}:${OBJ2}
    $(CXX) -o $@  $(OBJ2)  $(LIBS)

${BIN_TARGET3}:${OBJ3}
    $(CXX) -o $@  $(OBJ3)  $(LIBS)

${BIN_TARGET4}:${OBJ4}
    $(CXX) -o $@  $(OBJ4)  $(LIBS)

${BIN_TARGET5}:${OBJ5}
    $(CXX) -o $@  $(OBJ5)  $(LIBS)

${BIN_TARGET6}:${OBJ6}
    $(CXX) -o $@  $(OBJ6)  $(LIBS)

${BIN_TARGET7}:${OBJ7}
    $(CXX) -o $@  $(OBJ7)  $(LIBS)
   

${DIR_OBJ}/%.o:${DIR_SRC}/%.cpp
    $(CXX)  $(CPPFLAGS) -c  $< -o $@


.PHONY:clean
clean:
    find ${DIR_OBJ} -name *.o -exec rm -rf {} \;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章