makefile中指定opencv庫,(不從config中獲取)

.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++。

發佈了106 篇原創文章 · 獲贊 228 · 訪問量 64萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章