首页 > 其他分享 >makefile 通用模板

makefile 通用模板

时间:2023-04-26 15:12:20浏览次数:32  
标签:通用 lib ## makefile meter CSRCS 模板 ##############################################

#
# Makefile
#
# ⭐全速编译命令: make clean && make -j$(nproc)
# := 就地解析赋值  = 最后一次赋值  ?= 未赋值时赋值   += 接续赋值
# mount -t nfs -o nolock,vers=3 192.168.5.12:/home/book/nfs_rootfs /mnt && ps -ef | grep jc | grep -v grep | awk '{print $1}' | xargs kill
# 
# mount -t nfs -o nolock,vers=3 192.168.5.12:/home/book/nfs_rootfs /mnt
# ps -ef | grep jc | grep -v grep | awk '{print $1}' | xargs kill
# cp /mnt/_01_meter ./ && ./_01_meter
# cd /root && cp /mnt/jclvgldemo ./ && ./jclvgldemo
# cd /root && cp /mnt/jclvgldemo ./ && gdbserver localhost:9001 ./jclvgldemo
# nohup ./jclvgldemo >/dev/null &

#######################################################################
#######################################################################
####################### 编译 ##########################################
CC := aarch64-linux-gnu-gcc
# cc := aarch64-linux-gnu-gcc 
# CC := gcc
PRO_DIR ?= ${shell pwd}

WARNINGS = -Wall -Wextra \
           -Wshadow -Wundef -Wmaybe-uninitialized -Wmissing-prototypes -Wpointer-arith -Wuninitialized \
           -Wunreachable-code -Wreturn-type -Wmultichar -Wdouble-promotion -Wclobbered -Wdeprecated  \
           -Wempty-body -Wtype-limits -Wsizeof-pointer-memaccess -g
# CFLAGS用于编译,指定头文件等信息,源文件等信息
# LDFLAGS 用于链接,指定动态库目录,动态库名称等等

CFLAGS ?= -O2 -g0 $(WARNINGS) -I. -I./include
CFLAGS += -I/opt/EmbedSky/TQT507/CoreA/longan//platform/framework/auto/sdk_lib/include
# 使用gcc编译c++
CFLAGS += -lstdc++

CFLAGS += -I./cxx/include

LDFLAGS += -L./cxx/lib -ldface -lMNN_CL -lMNN
# LDFLAGS += -L/opt/EmbedSky/TQT507/CoreA/longan/out/t507/evb/longan/buildroot/target/usr/lib -L./lib 
# LDFLAGS += -lm -lz -lpthread -fstack-usage -lfreetype -lpng -lbz2 -lavformat -lavcodec -lavutil -lswscale -lswresample
# LDFLAGS += -L/platform/framework/auto/sdk_lib/cedarx/lib -lcdx_ion
# LDFLAGS += -L/platform/framework/auto/sdk_lib/sdk_memory -lsdk_memory

#######################################################################
#######################################################################
####################### 输出 ##########################################

BIN = testdface_licence_localinfo
OUTPUT = /home/book/nfs_rootfs
OUTPUT_BOARD = /opt/EmbedSky/TQT507/CoreA/longan/out/t507/evb/longan/buildroot/target/root


#######################################################################
#######################################################################
####################### 源文件 #########################################

#Collect the files to compile
# MAINSRC = ./main.c
MAINSRC +=  ./example/cxx/licence_demo/licence_localinfo.cpp


## include $(PRO_DIR)/my_lib/my.mk  ## 包含某个目录
## # 根据实际需要添加指定目录下的某个文件
## CSRCS += $(PRO_DIR)/pro_meter/meter_init.c
## CSRCS += $(PRO_DIR)/pro_meter/app/lvgl_include.c
## CSRCS += $(PRO_DIR)/pro_meter/app/lvgl_handle_show.c
## # 根据需要添加某目录下全部*.c文件
## CSRCS += $(shell find -L $(PRO_DIR)/pro_meter/driver/  -name "*.c")
## CSRCS += $(shell find -L $(PRO_DIR)/pro_meter/handle/  -name "*.c")

# CSRCS +=$(LVGL_DIR)/mouse_cursor_icon.c 
# $(info  __debuginfo__ $(CSRCS)) ## 打印

OBJEXT ?= .o

AOBJS = $(ASRCS:.S=$(OBJEXT))
COBJS = $(CSRCS:.c=$(OBJEXT))

MAINOBJ = $(MAINSRC:.c=$(OBJEXT))

SRCS = $(ASRCS) $(CSRCS) $(MAINSRC)
OBJS = $(AOBJS) $(COBJS) $(MAINOBJ)

#######################################################################
#######################################################################
####################### 编译链接 ######################################

# demo 批量编译 make -c 跳转到指定目录下执行makefile文件  -f 指定make执行的文件(默认执行makefile)
# SRC_DIR  +=  lv_100ask_app/src/imx6ull_app/imx6ull_set_lcd_brightness\
#              lv_100ask_app/src/imx6ull_app/imx6ull_set_time

# all: default
#     $(foreach  dir,$(SRC_DIR),make $(RUN_JOBS) -C $(dir);)

# clean:
#   $(foreach  dir,$(SRC_DIR),make -C $(dir) clean;)

all: default

%.o: %.c
    @$(CC)  $(CFLAGS) -c $< -o $@
    @echo "CC $<"
    
default: $(OBJS)
    $(CC) -o $(BIN) $(OBJS) $(LDFLAGS) $(CFLAGS)
    @echo finished $(BIN)
    # mkdir -p $(LVGL_DIR)/obj $(LVGL_DIR)/bin/
    # mkdir -p $(OUTPUT) $(LVGL_DIR)/obj $(LVGL_DIR)/bin/
    # rm -rf $(OUTPUT)/$(BIN)
    cp $(BIN) $(OUTPUT)
    # cp $(BIN) $(OUTPUT_BOARD)



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

 

自己总结的makefile通用模板,

 

//

 

标签:通用,lib,##,makefile,meter,CSRCS,模板,##############################################
From: https://www.cnblogs.com/RYSBlog/p/17356141.html

相关文章

  • html模板
    <html><head><metacharset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><h1>我的第一个标题</h1><p>我的第一个段落。</p></body></html>```......
  • 4/25 cpp模板
    template<classT>classmyarr{intcapacity;intsize;T*arr;public:myarr(inta){arr=newT[a];size=0;capacity=a;}myarr(myarr<T>&a){arr=newT[a.capacity];......
  • 高精度模板 大数减大数 可变数组vector实现
    vector<int>Sub(vector<int>&A,vector<int>&B)//这里默认长数减去短数{vector<int>C;//结果向量intT=0;//上一位借位标志位for(inti=0;i<A.size();i++){T=A[i]-T;if(i<B.size())T-=B[i];//检......
  • 高精度模板 整数大数除以小整数数
    vector<int>Div(vector<int>&A,int&B){vector<int>C;intT=0;//除数for(inti=A.size()-1;i>=0;i--)//注意,除法模拟是从最高位开始的{T=T*10+A[i];//更新除数C.push_back(T/B);T%=B;......
  • 模板与群体数据2
    #include<iostream>#include<cstdlib>usingnamespacestd;structStudent{ intid; floatgpa;};template<classT>classStore{ private: Titem; boolhaveValue; public: Store(); T&getElem(); voidputElem(constT&x);}; templ......
  • 模板与群体数据1
    #include<iostream>usingnamespacestd;template<classT>voidoutputArray(constT*array,intcount){ for(inti=0;i<count;i++) cout<<array[i]<<""; cout<<endl;}intmain(){ constintA_COUNT=8,B_COUNT=8,C_COUNT=20; i......
  • CBV源码剖析和模板层
    getattr()函数用来返回函数的一个对象属性值语法:getattr(object,name,default)object--对象。name--字符串,对象属性。default--默认返回值,如果不提供该参数,在没有对应属性时,将触发AttributeError。>>>classA(object):...bar=1...>>>a=A()>>>getatt......
  • 环保家具网站源码产品展示招商加盟二开模板定制开发
    包含了网站首页;关于我们; 新闻动态;产品中心;案例展示;荣誉资质;招商加盟;联系我们;等多个版块,可以快速搭建家装设计品牌招商官网1.品牌展示:网站可以展示各种家具品牌的产品和服务,包括品牌介绍、产品展示、服务范围等,便于用户了解品牌的相关信息,帮助其选择适合自己的品......
  • 企事业单位通用版招采系统(SRM),招采全过程闭环流程
    前言采购供应商管理的难点:沟通耗费精力,业务协同难,管控混乱。优质的供应商,是直接能够影响采购成本和企业采购战略落地的,而供应商管理的终极路径是建立企业自己的供应商私域流量池。源码获取:qq:262086839一、供应商管理1.供应商准入:支持多种供应商入驻方式,公开申请,他人代录,直接录......
  • 逼真的刺绣Photoshop插件-Realistic Embroidery 3.0汉化版 Win/Mac版通用
    使用RealisticEmbroidery3.0插件只需单击几下,即可将文本、徽标或形状转换为逼真的刺绣/缝合元素。逼真的刺绣3现在是一个完整的Photoshop插件,具有界面、改进的工作流程和许多新功能,将使您的数字缝纫体验更加美好!如图所示,自己体验吧!Bevel我翻译成的倒角,或许有其他更好的翻译,自己......