make入门之编写 makefile

2023-05-16

文档:GNU make

1.简介

Makefile 包含五种内容:显式规则、 隐式规则、变量定义、指令和注释。

  • 显式规则:何时及如何重新制作目标。列出了依赖的先决条件,提供创建或更新目标的配方。
  • 隐式规则:何时及如何根据文件名重新制作目标。描述如何依赖于名称与目标相似的文件。
  • 变量定义:为变量指定文本字符串值,变量可以替换到文本中。
  • 指令:make在读取 makefile 时执行特殊操作 的指令。
  • #:在makefile 的一行中开始注释。它和该行的其余部分被忽略,

1.1 分割线

Makefile 使用基于行的语法,换行符是特殊的并标记语句的结尾。

GNU make对语句行的长度没有限制,最多不超过计算机中的内存量。

如果不换行或滚动,则很难阅读太长而无法显示的行。

可以通过在语句中间添加换行符来格式化 makefile 以提高可读性

可以通过使用反斜杠 \ 字符转义内部换行符来做到这一点。

处理反斜杠换行符 / 的方式取决于语句是配方行还是非配方行。

在配方行之外,反斜杠换行符 / 被转换为单个空格字符。周围的所有空格都会压缩为一个空格

如果定义了特殊目标.POSIX,则反斜杠换行符 / 处理稍作修改以符合 POSIX.2

不删除反斜杠之前的空格,不压缩连续的反斜杠换行符 / 。

如果需要拆分一行但不希望添加任何空格,可以使

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

make入门之编写 makefile 的相关文章

  • Ubuntu 下的根目录为

    根目录为 xff1a 如果我们要进入tmp user里 xff0c 只需要输入cd tmp user 即可 例如 xff1a wangrui span class token annotation punctuation 64 bsp sp
  • MySQL8开启SSL加密

    1 概述 MySQL从5 7开始默认开启SSL加密功能 xff0c 进入MySQL控制台后输入status可以查看SSL的状态 xff0c 出现下图表示在使用SSL xff1a 另外 xff0c 加密连接需要密钥与证书 xff0c 可以使用
  • 服务器上的内容无法复制到本机

    服务器上的内容无法复制到本地 xff0c 显示 xff1a 复制文件或文件夹出错 xff0c 未指定的错误 打开远程桌面连接 本地资源 详细信息 勾选下面的几项 xff0c 确定 然后打开任务管理器 xff0c 查看是否有 rdpclip
  • linux ping报错Name or service not known

    设置静态ip以后忘记设置dns xff0c ping的时候报错 xff1a Name or service not known 添加dns即可 span class hljs title vi span etc resolv conf na
  • 如何为SUSE配置IP地址,网关和DNS

    方法一 在命令行中配置 输入 xff1a ifconfig eht0 9 111 66 96 netmask 255 255 255 0 up route add default gw 9 111 66 1 方法二 在文件中设置 示例参数
  • TCP协议理解和用法以及三次握手四次分手

    TCP协议 1 TCP网络分层 应用层 xff0c 传输层 xff0c 网络互联层 xff0c 网络访问层 xff0c 物理层 应 层 应 程序之间如何相互传递报 xff0c 如HTTP协议 传输层 传输层的作 是为两台主机之间的 应 进程
  • React 1.8踩坑,模块化引入less样式不生效

    在看一个 react 项目的时候 xff0c 项目中是直接引入 import style from 39 style less 39 create react app 创建项目之后 xff0c react 脚手架里面是已经集成了css xf
  • 做CV和做NLP,是否都有光明的未来?

    每天给你送来NLP技术干货 xff01 来自 xff1a 算法圈的小破事 作者 xff1a 疯狂试探皮皮虾 大家好 xff0c 我是在互联网危险边缘疯狂试探的皮皮虾 最近有点忙 xff0c 拖更了 xff0c 不知道有没有读者惦记皮皮虾推文
  • iOS UIAlertController使用汇总

    文章目录 1 xff64 UIAlertController显示普通的Alert2 xff64 UIAlertController显示带文本输入的的Alert3 xff64 UIAlertController显示ActionSheet 1
  • IOS 相机和相册的调用UIImagePickerController

    文章目录 UIImagePickerController类常用属性与方法UIImagePickerControllerDelegate代理协议举例准备工作 代码 在App开发时 xff0c 当我们需要调用摄像头拍照或者希望从相册中选择一张照
  • CVPR2019超分辨率 《zoom to learn,learn to zoom》《Camera lens super resolution 》

    CVPR2019超分领域出现多篇 xff0c 更接近于真实世界原理的低分辨率和高分辨率图像对应的新思路 具体来说 xff0c 以前论文训练数据主要使用的是人为的bicubic下采样得到的 xff0c 网络倾向于学习bicubic下采样的逆过
  • Android开发接入头条联盟穿山甲SDK遇到的问题

    1 在android7 0及以上无法调出安装页面的问题 官方文档如下 xff0c 需适配7 0及以上 lt provider android name 61 34 android support v4 content FileProvide
  • containerd的本地CLI工具ctr命令教程

    目录 1 帮助命令 2 镜像操作 1 拉取镜像 2 列出本地镜像 3 检测本地镜像 4 重新打标签 5 删除镜像 6 将镜像挂载到主机目录 7 将镜像从主机目录上卸载 8 将镜像导出为压缩包 9 从压缩包导入镜像 3 容器操作 1 创建容器
  • 学习stm32f429 hal库编程时遇到了SystickHandler疑似无法执行的情况

    学习stm32f429 hal库编程时遇到了SystickHandler疑似无法执行的情况 中断服务函数 span class token keyword void span span class token function SysTic
  • 使用Gitblit在Windows平台上安装与配置Git Server

    1 安装JDK xff0c 并配置好JDK环境变量 2 下载安装GitBlit xff0c 下载地址 xff1a http www gitblit com或者http gitblit com 3 解压缩下载的压缩包到指定目录gitblit即
  • Qt学习总结之QPushbutton详解

    一 简述 按钮 xff0c 界面中常用的控件 xff0c 默认矩形 QPushButton的子类 xff1a QCommandLinkButton父类 xff1a QAbstractButton QAbstractButton的父类是QWi
  • Ubuntu下安装ARM交叉编译工具

    一 简介 在Ubuntu下安装ARM的交叉编译工具是常用到的 xff0c 下面以arm linux gcc 4 3 2为例讲解ARM下安装交叉编译工具 二 安装步骤 拷贝压缩文件到指定路径解压配置环境变量更新环境变量并查看验证是否成功 2
  • 记:ubuntu下交叉编译arm的链接库

    以第三方库libjpeg为例 xff0c 编译所需要的三步 xff1a 1 配置 configure脚本参数 xff0c span class token punctuation span span class token operator
  • 统计案例 | 三门问题

    统计案例 三门问题 一 前言二 背景三 思路1 xff1a 直观解释四 思路2 xff1a 列出概率空间与所有事件五 思路3 xff1a 条件概率法六 思路4 xff1a Python模拟七 写在最后 一 前言 今天小编和各位小伙伴来聊一档
  • 详解远程桌面协议, Linux 和 Windows 间的远程桌面互相访问(RDP、VNC协议)

    前言 xff1a 远程协议有很多 xff0c 本文只讨论几种主要的 xff0c 另外由于Windows之间的远程桌面工具实在是太多了 xff0c 这里就不再说明 xff0c 主要以Windows和Linux之间的互相访问来说明 一 常见的远

随机推荐

  • SQL 2012 解析JSON字符串

    Object UserDefinedFunction dbo parseJSON Script Date 2019 12 17 11 30 01 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON G
  • nextcloud+onlyoffice docker-compose创建私有云

    nextcloud镜像 分两种镜像 xff1a nextcloud latest nextcloud镜像默认对应的是apache web服务器版本nextcloud fpm 基于php fpm镜像 xff0c 并运行fastCGI Proc
  • 发布到IIS后,后端拒绝put和delete请求

    系统在本地没有问题 xff0c 发布到服务器上后 xff0c put和delete请求不行 报跨域的错误 原因 xff1a IIS8默认会拒绝delete和put请求 解决方法 xff1a 删除IIS模块里面的WebDAVModule
  • Linux入门之使用 ping 命令检测主机是否激活

    文档 Ping command basics for testing and troubleshooting Enable Sysadmin ping 8 Linux manual page 1 简介 ping 命令向网络主机发送 ICMP
  • Linux入门之使用 traceroute 追踪数据包传输路径

    文档 https en wikipedia org wiki Traceroute https www geeksforgeeks org traceroute command in linux with examples Ping tra
  • ubuntu16.04安装NVIDIA显卡驱动

    文章目录 1 用系统适配的方式安装显卡驱动2 用命令行的方式安装从NVIDIA官网上下载的显卡驱动2 1 下载显卡驱动2 2 卸载原有驱动2 3 禁用nouveau2 4 安装nvidia显卡驱动 参考 xff1a ubuntu操作系统下安
  • Linux入门之使用 arp 管理ARP协议缓存

    文档 arp command in Linux with examples GeeksforGeeks 1 简介 arp 命令操作系统的 ARP 缓存 它还允许完整转储 ARP 缓存 ARP 代表地址解析协议 该协议的主要功能是将系统的IP
  • Linux入门之使用 dig 查找域名

    文档 https en wikipedia org wiki Dig command dig Command in Linux with Examples GeeksforGeeks 1 简介 dig是用于查询域名系统 DNS 的网络管理
  • Linux入门之使用 dmesg 查看引导日志

    文档 https en wikipedia org wiki Dmesg dmesg 1 Linux manual page 1 简介 在许多 Linux 系统上 引导过程会生成特别密集的内核消息流 许多管理问题与引导过程中是否成功枚举所需
  • http协议入门之 SameSite cookies

    文档 SameSite cookies HTTP MDN SameSite cookies explained 1 简介 响应标头 Set Cookie 的SameSite属性允许声明 cookie 是否应限制为第一方或同一站点上下文 准确
  • cloudflare入门之 /cdn-cgi/ 端点

    1 简介 将域添加到 Cloudflare时 xff0c Cloudflare 会向该域添加一个 cdn cgi 端点 此端点由 Cloudflare 管理 它不能被修改或定制 一些使用此端点的例子包括 xff1a Cloudflare 机
  • cloudflare入门之附加 cookie

    文档 Cloudflare Cookies Cloudflare Fundamentals docs 1 简介 Cloudflare 使用 cookie 来最大化网络资源 管理流量并保护网站免受恶意流量的侵害 2 cflb 使用Cloudf
  • Linux入门之使用 ps 查看系统进程

    文档 PS Command ps command in Linux with Examples GeeksforGeeks ps 1 Linux manual page 1 简介 ps命令允许显示有关正在运行的进程的信息 它从 proc文件
  • Linux入门之使用 top 查看系统进程

    文档 Top command top command in Linux with Examples GeeksforGeeks top 1 Linux manual page 1 简介 top命令显示系统上正在运行的进程的实时列表 还显示有
  • android入门之使用 adb 进行屏幕截图

    文档 xff1a https developer android com studio command line adb screencap 1 进入shell adb shell shell 64 2 截图 在 shell 里进行截图 x
  • node.js实战之使用 jsdom

    文档 GitHub jsdom jsdom 1 简介 jsdom 是许多 web 标准的纯 JavaScript 实现 特别是 WHATWG DOM和HTML标准 该项目的目标是模拟足够多的 Web 浏览器子集 以用于测试和抓取真实世界的
  • CentOS-7 MySQL 5.7.20安装

    1 检查系统是否安装了mariadb rpm qa grep mariadb 发现已经安装 xff0c 卸载 rpm e nodeps mariadb libs 5 5 52 1 el7 x86 64 2 创建mysql用户组和mysql用
  • mac os入门之安装 brew

    nbsp 文档 The Missing Package Manager for macOS or Linux Homebrew 1 简介 Homebrew 安装了Apple 或 Linux 系统 不需要的东西 nbsp Homebrew 将
  • node.js入门之 mac os下安装 nvm

    1 安装 安装脚本与 linux 下一样 wget qO https raw githubusercontent com nvm sh nvm v0 39 1 install sh bash gt Downloading nvm from
  • make入门之编写 makefile

    文档 GNU make 1 简介 Makefile 包含五种内容 显式规则 隐式规则 变量定义 指令和注释 显式规则 何时及如何重新制作目标 列出了依赖的先决条件 提供创建或更新目标的配方 隐式规则 何时及如何根据文件名重新制作目标 描述如