嵌入式linux C++通用makefile模板

编译生成spdlog_app可执行程序

#Makefile
# 编译器
#COMPLITE=arm-none-linux-gnueabi-
#COMPLITE=/root/share/nuvoton_cross/arm_linux_4.8/bin/arm-nuvoton-linux-uclibceabi-
#/root/share/nuvoton_cross/host/usr/bin/
COMPLITE=arm-nuvoton-linux-gnueabi-
CC=$(COMPLITE)gcc
CXX=$(COMPLITE)g++
LD=$(COMPLITE)ld


# 编译选项
CFLAGS = -Wall

# 目标文件
TARGET = spdlog_app
OBJ_DIR = build

# 源文件
# 当前目录下的.cpp
#SRCS = $(wildcard *.cpp)
#其他目录下的.cpp
SRCS += $(wildcard src/*.cpp)

SRCS_C= $(wildcard src/*.c)
CFLAGS=-I./
CPPFLAGS=-I./
LDFLAGS=-L./
 
LIBS=-lpthread -levent -lrt
#LIBS=
CFLAGS += -Wall
CPPFLAGS += -W -Wall -std=c++11 -Wno-psabi -lc

CFLAGS += -I ./include
CPPFLAGS += -I ./include
#-Wall -fPIC -shared

# 头文件
#CFLAGS += -Imodule1/inc
#CFLAGS += -Imodule2/inc
#CFLAGS += -Ipath/to/include2

# LIB
#CFLAGS += -Lpath/to/lib1
#CFLAGS += -Lpath/to/lib2

#添加宏定义
#CFLAGS += -DANDROID_OS

# 对象文件和中间文件目录
OBJS = $(SRCS:%.cpp=$(OBJ_DIR)/%.o)
OBJS += $(SRCS_C:%.c=$(OBJ_DIR)/%.o)
# 默认构建目标
all: $(TARGET)

# 生成可执行文件 
$(TARGET): $(OBJS)
	$(CXX) $(LDFLAGS) $(LIBS) -o $@ $^

# 生成根目录下的目标文件
$(OBJ_DIR)/%.o: %.cpp | $(OBJ_DIR)
#创建文件夹很关键,不然会fail
	@mkdir -p $(dir $@)
	$(CXX) $(CPPFLAGS) -c $< -o $@

# 生成根目录下的目标文件
$(OBJ_DIR)/%.o: %.c | $(OBJ_DIR)
#创建文件夹很关键,不然会fail
	@mkdir -p $(dir $@)
	$(CC) $(CFLAGS) -c $< -o $@
	
# 创建中间文件目录
$(OBJ_DIR):
	mkdir -p $(OBJ_DIR)


clean:
	@echo "clean:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值