Makefile文件注释与学习

45 篇文章 3 订阅
38 篇文章 5 订阅

#目标文件
PROJECT = resnet50
#?=是如果没有定义,则定义
CXX ?= g++
CC ?= gcc

CFLAGS += -O2 -Wall -Wpointer-arith -std=c++11 -ffast-math
CFLAGS += -I…/common/
#-Wpointer-arith对函数指针或者void *类型的指针进行算术操作时给出警告,也很有用。 -Wall 并不会打开此项。
#-ffast-math 选项定义了预处理器宏 FAST_MATH, 指示编译不必遵循 IEEE 和 ISO 的浮点运算标准。-ffast-math标记是一个群组选项

LDFLAGS += -ln2cube -lhineon -lopencv_videoio -lopencv_imgcodecs -lopencv_highgui -lopencv_imgproc -lopencv_core -lpthread

CUR_DIR = $(shell pwd)

MODDIR = $(CUR_DIR)/model
BUILD = $(CUR_DIR)/build
VPATH = ( S R C ) : (SRC): (SRC):(SRC_DPUTILS)
C_DIR := $(shell find $(SRC) -name *.c)
#定义目标文件为源文件.c改成.o,并去掉所有目录
OBJ = $(patsubst %.c, %.o, $(notdir $(C_DIR)))
CC_DIR := $(shell find $(SRC) -name *.cc)
OBJ += $(patsubst %.cc, %.o, $(notdir $(CC_DIR)))
CPP_DIR := $(shell find $(SRC) -name *.cpp)
OBJ += $(patsubst %.cpp, %.o, $(notdir $(CPP_DIR)))
OBJ += dputils.o

CFLAGS += -mcpu=cortex-a53

MODEL = $(CUR_DIR)/model/dpu_resnet50_0.elf
SRC = $(CUR_DIR)/src
SRC_DPUTILS = $(shell cd …/common/; pwd)

.PHONY: all clean
#第一个目标为生成一个目录,第二个目标为生成项目目标
all: $(BUILD) $(PROJECT)
#addprefix $(BUILD)/作为前缀加到全部依赖项上,并指定目标文件
$(PROJECT) : $(OBJ)
$(CXX) $(CFLAGS) $(addprefix $(BUILD)/, $^) $(MODEL) -o $@ $(LDFLAGS)
#-c编译,应可省,-o指定存入目录及文件名
%.o : %.cc
$(CXX) -c $(CFLAGS) $< -o ( B U I L D ) / (BUILD)/ (BUILD)/@
%.o : %.cpp
$(CXX) -c $(CFLAGS) $< -o ( B U I L D ) / (BUILD)/ (BUILD)/@

clean:
$(RM) -rf $(BUILD)
$(RM) $(PROJECT)
#创造递归目录
$(BUILD) :
-mkdir -p $@

查找库文件位置命令
root@pynq:~# pkg-config --cflags opencv
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值