1. 实用的简单模板工程文件
    1.1 工程文件

    1.2 iniparser中的文件

    在include文件夹中的文件 dictionary.h iniparser.h
    在lib文件夹中的文件 libiniparser.a

    1.3 在filecfg文件夹中的文件

  2. Makefile简单模板

# 指令编译器和选项
CC=gcc
PUB_PATH :=$(PWD)
# 添加静态库
LIBS := $(PUB_PATH)/iniparser/lib/libiniparser.a \# -I$(PUB_PATH)/xxxxx  代表要添加的新增文件夹步骤1 头文件路径
INC_PATH := -I$(PUB_PATH)/iniparser/include \
-I$(PUB_PATH)/filecfg \CFLAGS := -Wall -g -rdynamic -D _GNU_SOURCE $(INC_PATH)# target source
SRCS  := $(wildcard *.c)
OBJS  := $(SRCS:%.c=%.o)# 以下COMM三步  代表要添加的新增文件夹步骤2   可以添加
COMMON_filecfg:=$(PWD)/filecfg
COMM_SRC := $(wildcard *.c $(COMMON_filecfg)/*.c)
COMM_OBJ := $(COMM_SRC:%.c=%.o)TARGET :=main
all: $(TARGET)$(TARGET):$(COMM_OBJ)
$(CC) $(CFLAGS) -lpthread -lm -ldl -o $@ $^ $(LIBS)clean:
@rm -rf $(TARGET)
@rm -rf $(COMM_OBJ)
  1. 解析
    3.1 $(PWD):
    在Makefile中对应可用PWD := (shellpwd)来获取。那么(shell pwd)来获取。那么(shellpwd)来获取。那么(shell pwd)得到的目录即为执行make -f命令的当前目录。

    3.2 $(wildcard *.c)
    来获取工作目录下的所有的.c文件列表。

    3.3 变量的定义
    = 延迟赋值 ,将整个makefile中的所有变量的值都计算完之后,确定该变量的值。
    := 立即赋值,:=只能使用前面定义好的变量。
    += 追加赋值
    ?= 条件赋值

    3.4 自动变量
    $@ 所有目标的集合
    $^ 所有依赖目标的集合, 会去除重复的依赖目标
    $+ 所有依赖目标的集合, 不会去除重复的依赖目标
    $? 比目标新的依赖目标的集合

    3.5 变量替换和变量引用(比如)
    #变量替换
    SRCS := programA.c programB.c programC.c
    OBJS := $(SRCS:%.c=%.o)
    #变量引用
    $(SRCS)
    echo $(SRCS)

    3.6 C相关命令和参数定义

模板路径: \192.168.1.141\share\CBasic\hi3516a_noreplay_yanzheng\iniparser

Linux_Makefile模板相关推荐

  1. VS Code 安装插件、自定义模板、自定义配置参数、自定义主题、配置参数说明、常用的扩展插件

    1. 下载和官网教程 下载地址:https://code.visualstudio.com/ 官方教程:https://code.visualstudio.com/docs 2. 安装插件 安装扩展插 ...

  2. SpringBoot (三) :SpringBoot使用Freemarker模板引擎渲染web视图

    什么是Freemarker FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而 ...

  3. SpringBoot-web开发(三): 模板引擎Thymeleaf

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) SpringBoot-web开发(二): 页面和图标定制(源码分析) 目录 1. 引入 ...

  4. 二分查找模板全面总结

    二分查找 二分法的引入 情形1 1.X的平方根 2.搜索旋转排序数组 情形2 1.第一个错误的版本 2.寻找峰值 3.寻找旋转排序数组中的最小值 情形3 在排序数组中查找第一个和最后一个位置 当遇到查 ...

  5. Django 模板HTML转义和CSRF4.3

    Django对字符串进行自动HTML转义,如在模板中输出如下值: 视图代码: def index(request):return render(request, 'temtest/index2.htm ...

  6. Django 模板继承4.2

    模板继承 模板继承可以减少页面内容的重复定义,实现页面内容的重用 典型应用:网站的头部.尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义 block标签:在父模板中预留区域,在子模板中填 ...

  7. Django 模板4.1

    模板介绍 作为Web框架,Django提供了模板,可以很便利的动态生成HTML 模版系统致力于表达外观,而不是程序逻辑 模板的设计实现了业务逻辑(view)与显示内容(template)的分离,一个视 ...

  8. Django 视图和模板1.4

    视图 在django中,视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求的信息 视图就是一个Python函数,被定义在views.py中 #coding:utf-8 fr ...

  9. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

最新文章

  1. Learn OpenGL (十二):投光物
  2. 神经网络的反向传播(BP)是什么?sigmoid函数的导数是什么,有什么形式优势、优缺点?
  3. 千万级并发下的 推送系统建设策略解析(一)
  4. 查看hive中某个表中的数据、表结构及所在路径
  5. 小白带你入坑xamarin系列之环境搭建和准备
  6. POJ 3670 Eating Together
  7. python中常用的模块_Python中常用的模块
  8. UltraCompare v2022文本比较
  9. 示波器电流探头可分为无源和有源两类,它们的区别是什么?
  10. 全国大学生数学建模竞赛——2017A题(学习笔记)
  11. CDN(内容分发网络)
  12. python皮卡丘字符打印代码,python画皮卡丘的代码
  13. 计算机专业实践体会,计算机专业毕业实习心得体会
  14. lvs集群实现lvs-dr模型和lvs-nat模型
  15. 数据同步工具Sqoop
  16. 账号和权限管理(一)
  17. matlab函数im2bw_答复同学Matlab roipoly函数的用法
  18. win10计算机跑分,Win11对比Win10系统性能测试,看完跑分结果还等发布会吗?
  19. 全文检索技术Lucene入门和学习、与数据库数据结合的demo实现
  20. Web死链扫描神器之LinkChecker

热门文章

  1. 华为,再牵手一流大学
  2. 大道至简:算法工程师炼丹Trick手册
  3. NeurIPS 2020不用抢票了!官方宣布改线上举办,网友:nice!已白嫖3个顶会
  4. 那些在一个公司死磕了5-10年的程序员,最后都怎么样了?
  5. 为了不让GPU等CPU,谷歌提出“数据回波”榨干GPU空闲时间,训练速度提升3倍多...
  6. 时间就是金钱!Windows 上必装的 10 款高效软件
  7. 这是一名南京985AI硕士,CSDN博客专家
  8. K-近邻算法之kd树
  9. 因为失误导致数据丢失
  10. 深度学习实现缺陷检测