Makefile文件编写

来源:互联网 发布:ff14暗之战士捏脸数据 编辑:程序博客网 时间:2024/06/18 17:05

前言

做项目需要在linux下编译文件,所以临时学习一下Makefile文件的编写,只了解了一些皮毛

代码

编译自己的代码所编写的Makefile文件如下:

INCLUDE_DIRS := ./ /usr/local/include /usr/includeLIBRARY_DIRS := /usr/local/lib /usr/libLIBRARIES := opencv_core opencv_imgproc opencv_highguiWARNINGS := -WallCXX:= /usr/bin/g++COMMON_FLAGS += $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir))CXXFLAGS := -fPIC $(COMMON_FLAGS)LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) $(foreach library,$(LIBRARIES),-1$(library))all : cnn_decode.bincnn_decode.bin : main.o net.o layer.o blob.o math_funtion.o    $(CXX) -c cnn_decode.bin main.o net.o layer.o blob.o math_functions.o $(LDFLAGS) $(WARNINGS)main.o : main.cpp net.h    $(CXX) -c main.cpp net.h $(CXXFLAGS) $(LDFLAGS) $(WARNINGS)net.o : net.cpp net.h    $(CXX) -c net.cpp net.h $(CXXFLAGS) $(LDFLAGS) $(WARNINGS)layer.o : layer.cpp layer.h    $(CXX) -c layer.cpp layer.h $(CXXFLAGS) $(LDFLAGS) $(WARNINGS)blob.o : blob.cpp blob.h    $(CXX) -c blob.cpp blob.h $(CXXFLAGS) $(LDFLAGS) $(WARNINGS)math_functions.o : math_functions.cpp math_functions.h    $(CXX) -c math_functions.cpp    math_functions.h $(CXXFLAGS) $(LDFLAGS) $(WARNINGS).PHONY : cleanclean:    -rm cnn_decode.bin main.o net.o layer.o blob.o math_functions.o

一些学习心得如下:
1、Makefile中的命令如果单独一行,要以tab键开头。
2、Makefile规则包含两部分:一个是依赖关系,一个是生成目标的方法。规则顺序很重要,因为Makefile中只应该有一个最终目标。
3、Makefile中的变量相当于C/C++中的宏,使用的时候$(变量名)。
4、四种赋值方式:
(1)= 递归赋值,Makefile展开后最后被指定的值
(2):= 非递归赋值,取决于在Makefile中的位置
(3) ?= 若没被赋值过则赋值
(4) += 添加等号后面的值
未完待续……

原创粉丝点击