当前位置: 首页 > news >正文

建设部网站官网施工合同文本/线上平台推广方案

建设部网站官网施工合同文本,线上平台推广方案,成都市建设网扬尘监控网站,惠州网站外包文章目录 1. 总体认识2. 编写Makefile2.1. Makefile的组成2.2. Makefile文件名2.3. 包含其他Makefile 3. 编写规则4. 编写规则中的构建命令5. 如何使用变量6. 条件判断7. 转换文本的函数8. 如何运行make9. 使用模糊规则10. 使用make来更新存档文件11. 扩展GNU make12. 集成GNU …

文章目录

  • 1. 总体认识
  • 2. 编写Makefile
    • 2.1. Makefile的组成
    • 2.2. Makefile文件名
    • 2.3. 包含其他Makefile
  • 3. 编写规则
  • 4. 编写规则中的构建命令
  • 5. 如何使用变量
  • 6. 条件判断
  • 7. 转换文本的函数
  • 8. 如何运行make
  • 9. 使用模糊规则
  • 10. 使用make来更新存档文件
  • 11. 扩展GNU make
  • 12. 集成GNU make
  • 13. GNU make的特性
  • 14. 不兼容和缺少的特性
  • 15. makefile文件约定

1. 总体认识

  • GNU Make是一个命令工具,用于控制从源文件生成可执行文件和其他非源文件。使用前需要进行安装(以ubuntu为例):
    sudo apt install make
    
  • Make从Makefile中了解如何构建程序,该文件列出了每个非源文件及其构建方法,因此需要编写Makefile以供make命令构建项目。
  • GNU Make的具体用途
    • 能够使用户在不知道如何完成的情况下构建和安装包。
    • 能够根据更改的源文件,自动确定需要更新哪些文件
    • 不限于任何特定的语言,最常用于C/C++项目的构建。对于程序中的每个非源文件,Makefile指定用于构建它的shell命令。这些shell命令可以运行编译器来生成目标文件,可以运行链接器来生成可执行文件,可以更新库,也可以运行TeX或Makeinfo来格式化文档。
    • 不限于构建包。还能控制软件包的安装或卸载,为其生成标记表,或者执行经常做的任何任务。
  • 默认情况下,make命令只执行完遇到的第一条规则,包括递归执行生成先决条件的规则,其他的规则不执行。要执行其他规则,需要指定目标,比如make clean

2. 编写Makefile

2.1. Makefile的组成

Makefile包括明确的规则、模糊的规则、变量的定义、指令和注释。

  • 明确的规则(explicit rule)规定何时以及如何构建目标,其基本结构如下:
    targets ... : prerequisites ...recipe	# 注意Tab键开头...
    
    • 目标(targets):通常是生成的文件名,也可以是要执行的操作名(伪目标)。
    • 先决条件(prerequisites):是构建命令需要输入的所有文件,用空格隔开。
    • 构建方法(recipe):每行以Tab键开头,内容是构建目标文件的shell命令。
    • 如果先决条件比目标更新,或者目标不存在,那么会重新构建目标
  • 模糊的规则(implicit rule)规定了何时以及如何基于文件名重新构建一类文件。比如源文件编译成目标文件:
    main.o : defs.h
    
    不用写源文件名和编译命令。
  • 变量的定义(variable definition)指定了后续变量要替换的文本字符串值。
  • 指令(directive)用于读取Makefile时执行一些特殊的操作,包括
    • 读取另一个makefile文件
    • 基于变量的值决定使用还是忽略makefile的一部分
    • 定义多行变量(用一个变量替换多行命令)
  • 注释(comment)
    • #后面的内容忽略,如果有反斜杠折行则会跨行注释
    • 使用#字符要转义:\#
    • 不能在变量引用和函数调用中使用注释,#号都会当字面量处理。
    • 构建命令中的注释会传递给shell,shell决定如何处理。
    • define指令中注释不会被忽略,而是作为变量的值,根据变量展开时的上下文,被视为注释或构建命令文本。
  • 使用反斜杠\可以将长行折成多行。
  • 使用$\可以去掉多余的空格。

2.2. Makefile文件名

  • 默认情况下,make会尝试查找以下文件名:GNUmakefile、makefile和Makefile。推荐使用Makefile
  • 如果make没找到默认文件名,则需要通过命令参数-f--file=指定。
  • 如果使用多个-f--file=参数,则可以指定多个生成文件。所有的制作文件都按照指定的顺序有效地连接起来。
  • 如果指定-f--file=参数,默认文件名的makefile不会自动检查。

2.3. 包含其他Makefile

3. 编写规则

4. 编写规则中的构建命令

5. 如何使用变量

6. 条件判断

7. 转换文本的函数

8. 如何运行make

9. 使用模糊规则

10. 使用make来更新存档文件

11. 扩展GNU make

12. 集成GNU make

13. GNU make的特性

14. 不兼容和缺少的特性

15. makefile文件约定

相关文章:

【Makefile/GNU Make】知识总结

文章目录 1. 总体认识2. 编写Makefile2.1. Makefile的组成2.2. Makefile文件名2.3. 包含其他Makefile 3. 编写规则4. 编写规则中的构建命令5. 如何使用变量6. 条件判断7. 转换文本的函数8. 如何运行make9. 使用模糊规则10. 使用make来更新存档文件11. 扩展GNU make12. 集成GNU …...

腾讯云轻量服务器和云服务器CVM该怎么选?区别一览

腾讯云轻量服务器和云服务器CVM该怎么选?不差钱选云服务器CVM,追求性价比选择轻量应用服务器,轻量真优惠呀,活动 https://curl.qcloud.com/oRMoSucP 轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年,540元三…...

MySQL定时备份实现

一、备份数据库 –all-databases 备份所有数据库 /opt/mysqlcopy/all_$(date “%Y-%m-%d %H:%M:%S”).sql 备份地址 docker exec -it 容器名称 sh -c "mysqldump -u root -ppassword --all-databases > /opt/mysqlcopy/all_$(date "%Y-%m-%d %H:%M:%S").sq…...

Nginx 不同源Https请求Http 报strict-origin-when-cross-origin

原因: nginx代理配置url指向只开放了/* 而我/*/*多了一层路径 成功:...

openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作示例

文章目录 openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作示例175.1 相同表的INSERT和DELETE并发175.2 相同表的并发INSERT175.3 相同表的并发UPDATE175.4 数据导入和查询的并发 openGauss学习笔记-175 openGauss 数据库运维-备份与恢复-导入…...

pnpm、npm、yarn是什么?怎么选择?

pnpm、npm、yarn三者是前端常用的包管理器,那么他们有什么区别呢? 1. npm (Node Package Manager) npm是Node.js的默认包管理器。自Node.js发布以来,npm就一直作为它的一个组成部分存在,因此,安装Node.js时也会自动安…...

MySQL8 一键部署

#!/bin/bash ### 定义变量 mysql_download_urlhttps://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz mysql_package_namemysql-8.0.33-linux-glibc2.12-x86_64.tar.xz mysql_dec_namemysql-8.0.33-linux-glibc2.12-x86_64 mysql_download_…...

12 UVM Driver

目录 12.1 uvm_driver class hierarchy 12.2 How to write driver code? 12.3 UVM Driver example 12.4 How to get sequence items from the sequencer? 12.5 UVM driver methods 12.5.1 Using get_next_item/ try_next_item and item_done methods 12.5.2 Using get…...

“暂存”校验逻辑探讨

1、背景 在业务中可能会遇到这种场景,前端页面元素多且复杂,一次性填完提交耗时很长,中间中断面临着丢失数据的风险。针对这个问题,“暂存”应运而生。 那“暂存”的时候,是否需要对数据校验,如何进行校验…...

探究element-ui 2.15.8中<el-input>的keydown事件无效问题

一、问题描述 今天看到一个问题&#xff0c;在用Vue2element-ui 2.15.8开发时&#xff0c;使用input组件绑定keydown事件没有任何效果。 <template><div id"app"><el-input v-model"content" placeholder"请输入" keydown&quo…...

Unity 代码控制Text自适应文本高度

在使用代码给Text赋值时&#xff0c;且文本有多段&#xff0c;并需要根据实际文本高度适配Text组件的高度时&#xff0c;可以使用以下方法&#xff1a; //Text文本 public TextMeshProUGUI text;void Start() {//代码赋值文本text.text "好!\n很好!\n非常好!";//获…...

TiDB 7.1 多租户在中泰证券中的应用

本文详细介绍了中泰证券在系统国产化改造项目中采用 TiDB 多租户技术的实施过程。文章分析了中泰证券数据库系统现状以及引入 TiDB 资源管控技术的必要性&#xff0c;探讨了 TiDB 多租户的关键特性&#xff0c;并阐述了在实际应用中的具体操作步骤。通过该技术的应用&#xff0…...

嵌入式-stm32-SR04超声波测距介绍及实战

一&#xff1a;超声波传感器介绍 1.1、SR04超声波测距硬件模块 1.2、SR04的四个IO口 vcc:提供电源5V gnd:接地 Trig:是**发送**声波信号的触发器 Echo:是**接收**回波信号的引脚 当TRIG信号被触发时&#xff0c;传感器会发送一定频率的声波信号&#xff0c;该信号被反射后&am…...

智能优化算法应用:基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白鲸算法4.实验参数设定5.算法结果6.参考文献7.MA…...

mac m1芯片 pytorch安装及gpu性能测试

pytorch 使用mac的m1芯片进行模型训练。 #小结&#xff1a;在数据量小和模型参数少&#xff0c;batch_size小时&#xff0c;cpu训练更快&#xff08;原因&#xff1a;每次训练时数据需要放入GPU中&#xff0c;由于batch_size小。数据放入gpu比模型计算时间还长&#xff09; 在…...

go 使用 - sync.WaitGroup

使用 - sync.WaitGroup 简介使用注意点 简介 waitgroup 是等待一组并发操作完成得方法。Goroutines对Go来说是独一无二的&#xff08;尽管其他一些语言有类似的并发原语&#xff09;。它们不是操作系统线程&#xff0c;它们不完全是绿色的线程(由语言运行时管理的线程)&#x…...

Java Web Day07-08_Layui

1. Layui概念介绍 layui&#xff08;谐音&#xff1a;类 UI) 是一套开源的 Web UI 解决方案&#xff0c;采用自身经典的模块化规范&#xff0c;并遵循原生 HTML/CSS/JS 的开发方式&#xff0c;极易上手&#xff0c;拿来即用。其风格简约轻盈&#xff0c;而组件优雅丰盈&#x…...

阿里云华北3(张家口)暂时无法办理经营性ICP许可证

阿里云服务器的华北 3&#xff08;张家口&#xff09;地域暂时无法办理经营性ICP许可证&#xff0c;如有经营性ICP业务请勿选择此地域。如果需要办理经营性ICP业务的用户&#xff0c;不需要选择华北3&#xff08;张家口&#xff09;地域&#xff0c;可以选择华北2&#xff08;北…...

八种常见顺序存储的算法

目录 1、线性枚举 1&#xff09;问题描述 2&#xff09;动图演示 3&#xff09;示例说明 4&#xff09;算法描述 5&#xff09;源码详解 2、前缀和差分 1&#xff09;问题描述 2&#xff09;动图演示 3&#xff09;样例分析 4&#xff09;算法描述 5&#xff09;源码…...

Leetcod面试经典150题刷题记录 —— 栈篇

Leetcod面试经典150题刷题记录 —— 栈篇 1. 有效的括号2. 简化路径3. 最小栈4. 逆波兰表达式求值5. 基本计算器 1. 有效的括号 题目链接&#xff1a;有效的括号 - leetcode 题目描述&#xff1a; 给定一个只包括 ( &#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&…...

【Qt-QThread-QQueue】

Qt编程指南 ■ QThread■ 示例■ QQueue■■■ QThread ■ 示例 #include <QThread> class myThread : public QThread {Q_OBJECT signals...

电子握力器改造

toy_hand_game 介绍 消耗体力玩具&#xff0c;使用握力器(Grip Strengthener)控制舵机旋转。 开始设想是控制丝杆电机滑动&#xff0c;两套设备就可以控制两个丝杆电机进行“模拟拔河”&#xff0c;后续发现硬件设计错误&#xff0c;ULN2003不能控制两相四线电机&#xff0c;…...

3D展2D数学原理

今年早些时候&#xff0c;我为 MAKE 杂志写了一篇教程&#xff0c;介绍如何制作视频游戏角色的毛绒动物。 该技术采用给定的角色 3D 模型及其纹理&#xff0c;并以编程方式生成缝纫图案。 虽然我已经编写了一般摘要并将源代码上传到 GitHub&#xff0c;但我在这里编写了对使这一…...

MacOS+Homebrew+iTerm2+oh my zsh+powerlevel10k美化教程

MacOS终端 你是否已厌倦了MacOS终端的大黑屏&#xff1f; 你是否对这种美观的终端抱有兴趣&#xff1f; 那么&#xff0c;接下来我将会教你用最简单的方式来搭建一套自己的终端。 Homebrew的安装 官网地址&#xff1a;Homebrew — The Missing Package Manager for macOS (o…...

jenkins解决工具找不到的问题

--------------------------插件选择版本最好能跟服务器对上...

Android : 画布的使用 简单应用

示例图&#xff1a; MyView.java&#xff1a; package com.example.demo;import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.Vi…...

紫光展锐5G扬帆出海 | 东南亚成为5G新热土

东南亚是一块充满活力和潜力的市场&#xff0c;这里人口基数大、年轻消费群体占比高&#xff0c;电子市场在过去几年显著增长。 增速“狂飙”的东南亚手游 近年来&#xff0c;东南亚手游下载量逐年增长&#xff0c;2023 年第一季度下载量突破 21 亿次&#xff0c;贡献了全球近…...

STM32 学习(一)新建工程

本课程使用的stm32型号 引脚定义&#xff0c;有FT能接5v&#xff0c;没有FT能接3.3v 启动配置 第二种启动模式中&#xff0c;系统存储器中存放了一部分Bootloader程序&#xff0c;该程序可以接收串口的数据&#xff0c;然后刷新到主闪存中&#xff0c;这样就可以使用串口下载程…...

ROBOGUIDE教程:FANUC机器人固定点焊焊接虚拟仿真

目录 概述 机器人系统创建 焊接工件模型创建 机器人抓手工具添加与工件安装 工作台添加与工件安装 固定点焊焊枪支架模型创建与组装 固定点焊焊枪添加与配置 机器人远程TCP标定(核心内容) 远程TCP手动测试 远程TCP指令介绍 机器人仿真程序编写 机器人示教编程 机…...

代码审计必要性探讨

1、背景 为了保证代码的质量&#xff0c;需要一系列的流程来进行保证&#xff1a; 今天要探讨的是代码审计的必要性。 2、代码审计 代码审计的做法多种多样&#xff0c;我理解必须解决以下问题 &#xff0c;才可能有效&#xff1a; 核心&#xff1a;审计的本质是对比&#…...