通用的典型的makefile

模板1

CC = arm-linux-gnueabihf-gcc
SRCS = $(wildcard *.c)
SRCS := $(filter-out no_compile1.c no_compile2.c,$(SRCS))
OBJS = $(patsubst %c, %o, $(SRCS))
# -I指定头文件目录
INCLUDE = -I./
# -L指定库文件目录,-l指定静态库名字(去掉文件名中的lib前缀和.a后缀)
LIB = -L . -lpthread
# 开启编译warning和设置优化等级
CFLAGS = -Wall -g -rdynamic -funwind-tables -ffunction-sections

TARGET = reader

.PHONY:all clean

all: $(TARGET)
# 链接时候指定库文件目录及库文件名
$(TARGET): $(OBJS)
	$(CC) $(LIB) -o $@ $^ 
 
# 编译时候指定头文件目录
%o:%c
	$(CC) -c $^ $(INCLUDE) $(CFLAGS) 

clean:
	rm -f $(OBJS) $(TARGET)

模板2

CC = gcc
SRCS = $(wildcard ./test/*.c)
SRCS += $(wildcard ./nist_sts/*.c)
OBJS = $(patsubst %c, %o, $(SRCS))
# -I指定头文件目录
INCLUDE = -I./nist_sts/include/ -I/usr/local/include/
# -L指定库文件目录,-l指定静态库名字(去掉文件名中的lib前缀和.a后缀)
LIB = -L /usr/local/lib/ -lcrypto -lssl
# 开启编译warning和设置优化等级
CFLAGS = -g -Wall 
#-rdynamic -funwind-tables -ffunction-sections

TARGET = reader

.PHONY:all clean

all:$(TARGET)
$(TARGET):$(OBJS)
	$(CC)  -o $@ $^ $(LIB)
%.o:%.c
	$(CC) $(CFLAGS) $(INCLUDE) -o $@ -c $< 

clean:
	rm -f $(OBJS) $(TARGET)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值