linux 通用makefile编写

一般当我们的工程文件较多的时候,使用gcc工具直接敲编译命令比较麻烦,所以写makefile的好处就来了,每次只需要敲一下make就能编译

这里分享一个万能版的,当前目录不管多少文件,都只需要make一下,不用修改makefile,直接生成main可执行程序

以下是makefile

#交叉编译工具链
#CC=arm-linux-gnueabihf-gcc
CC=gcc

#链接库
CFLAGS=-lm -lpthread

#获取c文件
SrcFiles=$(wildcard *.c)

#使用替换函数获取.o文件
OBJS= $ (patsubst %.c,%.o,$(SrcFiles))

all:main
main:$(OBJS)
$(CC) -o $@ $^ $(CFLAGS)

%.o:%.c
$(CC) -c $< $(CFLAGS)

.PHONY:clean all
clean:
rm -rf $(OBJS)
rm -rf main

这里补充说明

wildcard函数,就是获取指定的文件
patsubst函数,有替换功能。
$(Files),取File变量的值。
$@ 目标文件
$^ 全部依赖
$< 第一个依赖
$? 第一个变化的依赖

猜你喜欢

转载自blog.csdn.net/u010835747/article/details/108407047
今日推荐