从一个简单的makefile开始:
CC = gcc EX = -lpthread #扩展命令-lpthread用于编译多线程源码, 去掉l也可以:EX = -pthread obj_file = private_data.o #多个文件之间用空格隔开 exe_File = private_exe $(exe_File): $(obj_file) $(CC) -o $@ $^ $(EX) #要想生成其他的可执行文件,或者.o文件,可以在这里继续添加 all: clean $(exe_File) .phony : clean clean: rm -f $(obj_file) rm -f $(exe_File) rm *.o
使用方法:
执行make clean,可以删除我们定义好的那些文件
执行make exe_File,可以生成可执行文件exe_File
执行make,默认执行第一个目标,也即会生成exe_File
执行make all,根据我们的定义,会依次执行make clean、make exe_File
代码解释:
1、定义变量,直接用等号赋值即可,调用(引用)变量时需要用$( )的形式
2、定义变量的好处是,举个例子,如果某个可执行文件依赖多个.o文件,或者某个.o依赖多个.c文件,那么把多个文件定义为变量,就比较清晰,也容易添加和修改;
3、目标文件与依赖文件,make代码要顶格写,前面不能有空格或者tab啥的
4、命令语句前面必须为一个tab,例如gcc命令、rm命令等
扫描二维码关注公众号,回复:
1702585 查看本文章