.PHONY: all test clean deps tags
CXX=g++
CXXFLAGS += -g -Wall -O -std=c++11
OPENCVLIBS = -L/home/sh00245/opencv/opencv3.1.0/lib -lopencv_cudabgsegm -lopencv_cudaobjdetect -lopencv_cudastereo -lopencv_shape -lopencv_stitching -lopencv_cudafeatures2d -lopencv_superres -lopencv_cudacodec -lopencv_videostab -lopencv_cudaoptflow -lopencv_cudalegacy -lopencv_calib3d -lopencv_features2d -lopencv_objdetect -lopencv_highgui -lopencv_videoio -lopencv_photo -lopencv_imgcodecs -lopencv_cudawarping -lopencv_cudaimgproc -lopencv_cudafilters -lopencv_video -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_cudaarithm -lopencv_core -lopencv_cudev
DEPS_INCLUDE_PATH= $(DLIB_PATH) -I /home/sh00245/opencv/opencv3.1.0/include/opencv -I /home/sh00245/opencv/opencv3.1.0/include -I /opt/cuda/cuda-9.0_cudnn75/include/ -I /home/sh00245/py2env/MobileNet-YOLO-app/include -I /home/sh00245/py2env/MobileNet-YOLO-app/build/include
TARGET = retinaface
LIBS= -lboost_system -lcaffe -lglog -lprotobuf -lcudart -lgflags -L /home/sh00245/py2env/MobileNet-YOLO-app/build/lib -L /opt/cuda/cuda-9.0_cudnn75/lib64
OBJS := $(patsubst %.cpp,%.o,$(wildcard *.cpp))
$(TARGET): $(OBJS)
$(CXX) -o $@ $^ $(LIBS) $(OPENCVLIBS) $(DEPS_LIB_PATH)
%.o:%.cpp
$(CXX) -c $(CXXFLAGS) $< $(DEPS_INCLUDE_PATH)
clean:
rm -f *.o $(TARGET
以上是一个简单的makefile例子,OPENCVLIBS指定具体的opencv版本libs,注意不同版本opencv其后包含的-l不同哦,具体看你需要用哪些,我这里除libippicv外全部都加载了,具体版本包含的所有lib库可使用pkg-config opencv --cflag --libs查看(注意需在bashrc中指定PKG_CONFIG_PATH指向具体opencv的安装路径)。
DEPS_INCLUDE_PATH指定了opencv所需要的头文件,否者在code中加载#include <opencv2/opencv.h>会出错。
$(CXX) -o $@ $^ $(LIBS) $(OPENCVLIBS) $(DEPS_LIB_PATH)
该语句将指定的lib库链接给CXX编译器,此处使用g++。
$(CXX) -c $(CXXFLAGS) $< $(DEPS_INCLUDE_PATH)
该语句指定的头文件include库链接给CXX编译器,此处使用g++。