编译目录下所有C,C++文件为单独目标

C与C++ 工具不一样,分别标示目标

#CROSS	= arm-linux-gnueabi-
CC	= $(CROSS)gcc
CXX = $(CROSS)g++

C_SRC	:= $(wildcard *.c)
X_SRC   := $(wildcard *.cpp)

C_OBJ	:= $(C_SRC:%.c=%.o)
X_OBJ	:= $(X_SRC:%.cpp=%.o)

C_TAG	:= $(C_OBJ:%.o=%)
X_TAG	:= $(X_OBJ:%.o=%)


all: $(C_TAG) $(X_TAG)
$(C_TAG):%:%.c
	@echo $< $@
	$(CC) $< -o $@ $(LIBS) $(CFLAGS)

$(X_TAG):%:%.cpp
	@echo $< $@
	$(CXX) $< -o $@ $(LIBS) $(CFLAGS)
	
clean:
	@rm $(C_TAG) $(X_TAG)


#######  C C++ 混编
#CROSS	= arm-linux-gnueabi-
CC	= $(CROSS)gcc
CXX = $(CROSS)g++

.PHONY	:all
.PHONY	:clean

C_SRC	:= $(wildcard *.c)
X_SRC   := $(wildcard *.cpp)

C_OBJ	:= $(C_SRC:%.c=%.o)
X_OBJ	:= $(X_SRC:%.cpp=%.o)

C_TAG	:= $(C_OBJ:%.o=%)
X_TAG	:= $(X_OBJ:%.o=%)

TARGET = $(C_TAG)  $(X_TAG)

CFLAGS	= -static -Wall 
LIBS	= -lpthread


CV_INC +=`pkg-config --cflags opencv4`
CV_LIBS +=`pkg-config --libs opencv4`
CPPFLAGS += -g -std=c++11 -Wall

all: $(TARGET) 
$(C_TAG):%:%.o
	$(CC) $^ -o $@ $(LIBS) $(CFLAGS)

$(C_OBJ):%.o:%.c
	$(CC) -c $< -o $@
		
$(X_TAG):%:%.o
	$(CXX) $(CPPFLAGS) $< -o $@ $(CV_LIBS)
	
$(X_OBJ):%.o:%.cpp
	$(CXX) $(CV_INC) $(CPPFLAGS) -c $< -o $@
	
clean:
	@rm $(C_TAG) $(X_TAG)
	@rm $(C_OBJ) $(X_OBJ)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值