1. 程式人生 > >萬能makefile模板

萬能makefile模板

編譯器 onf highgui make fin ann cor lean wall

這裏一份萬能makefile模板,寫opencv項目時候使用的。

前提是提前配置好 包管理工具 pkg 然後就不用每次都去 -lopencv_xxx了。

######################################
#
######################################
#source file
#源文件,自動找所有.c和.cpp文件,並將目標定義為同名.o文件
SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

#target you can change test to what you want
#目標文件名,輸入任意你想要的執行文件名
TARGET  :
= gpu-basics-similarity #compile and lib parameter #編譯參數 := equals = CC := g++ LIBS := -L/usr/local/lib #LDFLAGS := -lopencv_imgcodecs -lopencv_highgui -lopencv_xfeatures2d -lopencv_features2d -lopencv_core -lopencv_flann -lopencv_calib3d -lopencv_imgproc LDFLAGS :=`pkg-config --libs opencv` DEFINES :
= INCLUDE := -I. -I/usr/local/include CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) # CFLAGS 表示用於 C 編譯器的選項 #CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H # C++ 編譯器的選項 CXXFLAGS := -g -std=c++11 -Wall $(INCLUDE) $(TARGET):$(OBJS) $(CC) -o $@ $(OBJS) $(LIBS) $(LDFLAGS) $(CXXFLAGS) #下面的基本上不需要做任何改動了 .PHONY : everything objs clean veryclean rebuild everything : $(TARGET) all : $(TARGET) objs : $(OBJS) rebuild: veryclean everything # 換行的開始必須是1個tab clean : rm
-fr *.so rm -fr *.o veryclean : clean rm -fr $(TARGET)

萬能makefile模板