最近在做项目时发现Makefile非常重要,因为一个好的Makefile会让你的编译工作变得很流畅,好了,今天改了一下比较出名的网上的Makefile模板,现在把它贴出来,供各位刚刚入手的网友们借鉴借鉴。
说明:Makefile里面用“#”来屏蔽,相当于C里面的"//"。凡是有空格的地方一定要记得那个是tab键,是Makefile里面专门用于写命令固定的格式。知道这个了以后,现在我先说一下我的工程里面放了一个video_capture.c video_capture.h a.c a.h 。我用的是全志A20,也就是CT开发板,里面跑的是基于ubantu的Linux系统,内核版本忘掉了,我用VIM编写的代码,用gcc编译。
#Source file #源文件名称,记得哦,这个中文注释在Makefile里面是不显示出来的,不要直接复制我的这个代码哦。
SRC = video_capture.c a.c #相当于定义一SRC变量,它的值 video_capture.c a.c以后想用源文件的话,直接$(SRC)即可。
#Object file #目标文件
OBJ = $(SRC:.c=.o) #SRC:.c=.o 这个的意思是将SRC下的.c文件转化成.o文件,也就是定义了输出文件。
#如果你是用c++编写的话,就写成SRC:.cpp= .o就行了
#Output execution file #可执行文件
PROGRAM = lss #编译成功后,只需./lss就可以执行你的程序
#compiler #定义编译器,这里用的事gcc,如果你是c++编写的,就用g++,如果不懂gcc和g++的区别你可以百度
cc = gcc
#Link Parameter #加入一些链接文件
LINKPARAM = -Iopencv-core -lopencv-imgproc\
all: $(PROGRAM) #也就是all: lss
$(PROGRAM): $(OBJ) # 也就是 目标:依赖
$(cc) -o $(PROGRAM) $(LINKPARAM) $(OBJ) #这一行是命令,这样这里用的是tab键哦
clean:
rm *.o