码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Makefile


    Makefile作用

    工程是由大量GCC文件构成,一个个执行过于麻烦,Makefile可以将工程文件有序执行

    赋值符 =

    name=a
    curname=$(name)
    name=aa
    
    • 1
    • 2
    • 3

    变量的真实值取决于它所引用的变量的最后一次有效值
    最后输出curname=aa

    赋值符 :=

    name=a
    curname:=$(name)
    name=aa
    
    • 1
    • 2
    • 3

    不会使用后面定义的变量,只能使用前面已经定义好的
    最后输出curname=a

    赋值符 ?=

    curname ?= z
    
    • 1

    curname没被赋值,就等于z

    变量追加 +=

    a=main,o
    a+=input.o
    
    • 1
    • 2

    a为main.o input,o

    %

    模式规则

    main.o: main.c 
    	gcc -c main.c  
    input.o: input.c  
    	gcc -c input.c  
    calcu.o: calcu.c  
    	gcc -c calcu.c
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    %.o:%.c
    
    • 1

    自动化变量

    最常用
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    main.o: main.c 
    	gcc -c main.c  
    input.o: input.c  
    	gcc -c input.c  
    calcu.o: calcu.c  
    	gcc -c calcu.c
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    %.o:%.c
    	gcc -c $<
    
    • 1
    • 2

    .PHONY :

    伪目标

    .PHONY : clean
    
    • 1

    条件判断

    ifeq、 ifneq

    ifeq 判断相等

    ifeq (<参数 1>, <参数 2>) ifeq ‘‘<参数 1 <参数
    ifeq ““<参数 1>””, ““<参数
    ifeq ““<参数 1>””, ‘‘<参数
    ifeq ‘‘<参数 1>’’, ““<参数
    
    • 1
    • 2
    • 3
    • 4

    ifneq 判断不等

    ifdef、ifndef

    ifdef <变量名 >
    
    • 1

    如果“变量名”的值非空,那么表示表达式为真,否则表达式为假。“变量名”同样可以是一个函数的返回值。
    ifndef 相反

    函数

    函数 subst

    $(subst <from>,<to>,<text>)
    
    • 1

    在text中,将 from 换成 to

    $(subst zzk,ZZK,my name is zzk)
    
    • 1

    my name is zzk中,zzk 换成 ZZK

    函数 patsubst

    $(patsubst <pattern>,<replacement>,<text>)
    
    • 1

    在text中,所有符合 pattern 的 换成 replacement
    与上头不一样的——完成模式字符串替换
    pattern replacement可以用**%**表示

    $(patsubst %.c,%.o,a.c b.c c.c)
    
    • 1

    dir

    提取目录

    $(dir <names……>)
    
    • 1
    $(dir </src/a.c>)
    
    • 1

    返回/src

    notdir

    提取文件名

    $(notdir <names……>)
    
    • 1
    $(notdir </src/a.c>)
    
    • 1

    返回a.c

  • 相关阅读:
    新型基础测绘与实景三维中国建设技术文件【2】基础地理实体分类、粒度及精度基本要求
    383.赎金信
    东营市高新技术企业认定8个必须知道的问题
    sklearn决策树(Decision Trees)模型
    1-乙基-3-甲基咪唑四氟硼酸盐1E-3MI-TFB|石墨烯/导电高分子/离子液体修饰的黄曲霉毒素B1(科研)
    Hive基础教程
    基于微信小程序便民服务系统(微信小程序毕业设计)
    C/C++内存管理
    【MYSQL】表的内外连接
    SpringCloud搭建微服务之Config配置中心
  • 原文地址:https://blog.csdn.net/ljh5930/article/details/127796249
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号