【Makefile】编译日志之输出重定向符号 >

用法1

make all >&  compilelog.txt
make all >  compilelog.txt

这两个编译命令在功能上有一些细微的区别,主要在于标准输出和标准错误的处理方式。

  1. make all >& compilelog.txt

    • 这个命令会将标准输出(stdout)和标准错误(stderr)都重定向到同一个文件 compilelog.txt 中。这意味着所有通过 printfecho 等函数输出的信息以及错误信息都会被写入到 compilelog.txt 文件中。
    • 具体来说,>& 是 Bash 中的一个特殊语法,它将文件描述符 1(标准输出)重定向到文件描述符 2(标准错误),然后再一起重定向到指定的文件。因此,标准输出和标准错误都会合并并写入到同一个文件中。
  2. make all > compilelog.txt

    • 这个命令只会将标准输出(stdout)重定向到 compilelog.txt 文件中,而标准错误(stderr)仍然会在控制台上显示。这意味着只有正常的编译输出会被记录到 compilelog.txt 文件中,而错误信息则会直接显示在终端或控制台上。
    • 具体来说,> 是标准的输出重定向符号,它将标准输出重定向到指定的文件,但不会影响标准错误的输出。

总结

  • make all >& compilelog.txt:标准输出和标准错误都被重定向到 compilelog.txt 文件中。
  • make all > compilelog.txt:只有标准输出被重定向到 compilelog.txt 文件中,标准错误仍然会在控制台上显示。

选择哪种方式取决于你的需求。如果你希望同时记录正常输出和错误信息,可以使用第一个命令;如果你只关心正常输出,可以使用第二个命令。

用法2

make -f Makefile 1> 3308_linux.txt 2>&1

这个命令用于在 Linux 或 Unix 系统中编译代码,并将编译过程中的标准输出和标准错误都重定向到一个名为 3308_linux.txt 的文件中。

具体来说:

  • make -f Makefile:调用 make 工具,并指定使用 Makefile 文件来控制编译过程。
  • 1> 3308_linux.txt:将标准输出(文件描述符 1)重定向到 3308_linux.txt 文件中。
  • 2>&1:将标准错误(文件描述符 2)重定向到标准输出(文件描述符 1),这意味着标准错误也会被写入到 3308_linux.txt 文件中。

总结

这个命令会执行以下操作:

  1. 使用指定的 Makefile 文件进行编译。
  2. 将所有正常的编译输出(标准输出)和错误信息(标准错误)都重定向到 3308_linux.txt 文件中。

这样做的好处是,你可以方便地查看和分析编译过程中的所有输出信息,而不需要分别查看标准输出和标准错误。question_type_trigger

用法3

make all >& compilelog.txt 多次调用,下一次编译日志会覆盖上一次吗?

是的,如果你多次调用 make all >& compilelog.txt,每次编译的日志都会覆盖上一次的日志。这是因为重定向操作会将文件内容清空并写入新的输出。

示例

假设你第一次运行:

make all >& compilelog.txt

这会将第一次编译的输出和错误信息写入到 compilelog.txt 文件中。

然后你再次运行:

make all >& compilelog.txt

这次编译的输出和错误信息会覆盖 compilelog.txt 文件中的内容,之前的记录会被清除。

如何保留所有日志

如果你希望保留每次编译的日志,可以使用追加重定向符号 >> 而不是覆盖重定向符号 >

使用追加重定向
make all >> compilelog.txt 2>&1

这样,每次编译的输出和错误信息都会被追加到 compilelog.txt 文件的末尾,而不会覆盖之前的内容。

总结

  • 覆盖模式make all >& compilelog.txt 每次运行时会覆盖 compilelog.txt 文件的内容。
  • 追加模式make all >> compilelog.txt 2>&1 每次运行时会将新的内容追加到 compilelog.txt 文件的末尾,保留之前的内容。question_type_trigger

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/63548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 `typing_extensions.TypeAlias` 简化类型定义:初学者指南

使用 typing_extensions.TypeAlias 简化类型定义:初学者指南 什么是 TypeAlias?安装 typing_extensions示例代码:如何使用 TypeAlias示例 1:为简单类型定义别名示例 2:为复杂类型定义别名示例 3:结合 Union…

11.关于vim编辑器的简单配置

1. 说明 在linux系统中编辑文件内容的方式有很多种,比如直接在系统中暗中某些IDE,方便快捷,也可以直接在windows系统中编辑好文件后上传到linux系统中,这些方式对于编写内容较多的文件或者整个项目的文件还是非常适合的。不过有时…

qq空间管理小助手教程代码演示

headers {"Authorization": "Bearer YOUR_ACCESS_TOKEN","Content-Type": "application/json" }# 发布说说示例( def post_moment(content):url "https://qzone-api.example.com/post_moment"data {"con…

pytest 的简单介绍

官方文档:pytest 文档 1. pytest 概述 pytest 是一个功能强大的 Python 测试框架,旨在简化单元测试和功能测试的编写与执行。它不仅支持简单的单元测试,还能进行更复杂的测试,如数据驱动的测试、并发测试等。pytest 支持自动化发…

【ArcGIS微课1000例】0133:二维建筑物依据高度生成三维模型

拓展阅读:【ArcGIS Pro微课1000例】0032:创建具有指定高程Z值的矢量数据 文章目录 一、二维面要素拉伸实现三维显示二、依据高度实现要素转3D一、二维面要素拉伸实现三维显示 打开ArcScene软件,加载实验配套数据0133.rar中的建筑物.shp数据,如下图: 数据属性表中的Z为建筑…

快速搭建SpringBoot3+Vue3+ElementPlus管理系统

快速搭建SpringBoot3Vue3管理系统 前端项目搭建(默认开发环境:node20,Jdk17)创建项目并下载依赖--执行以下命令 前端项目搭建(默认开发环境:node20,Jdk17) 创建项目并下载依赖–执行以下命令 创建项目 y…

力扣--LCR 134.Pow(x,n)

题目 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000 示例 2: 输入:x 2.10000, n 3 输出:9.2610…

道可云人工智能元宇宙每日资讯|全国工商联人工智能委员会成立会议在南京举办

道可云元宇宙每日简报(2024年12月5日)讯,今日元宇宙新鲜事有: 全国工商联人工智能委员会成立会议在南京举办 全国工商联人工智能委员会成立会议日前在江苏省南京市举办。中央统战部副部长、全国工商联党组书记沈莹出席会议并讲话…

基于Qt的文字处理软件(二)

这期文章我们进行主窗口的一些函数的定义,同时导入一些文字处理软件的状态栏会用到的图标。下面图片是图标导入到项目后的一个示例,图标可以到阿里矢量图标库里面找到。 一、导入图标资源: 1.首先在项目目录的位置创建一个images的文件,然后将收集好的图…

如何使用WinCC DataMonitor基于Web发布浏览Excel报表文档

本文介绍使用 WinCC DataMonitor 的 "Excel Workbooks" 功能,通过 Excel 表格显示 WinCC 项目的过程值、归档变量值和报警归档消息。并可以通过 Web 发布浏览访问数据 1.WinCC DataMonitor是什么 ? DataMonitor 是 SIMATIC WinCC 工厂智能中…

element plus table组件多选获取数据id

首先给table加上 selection-change"handleSelectionChange"事件 示例 <el-table selection-change"handleSelectionChange" stripe:data"data?.slice((currentPage3 - 1) * pageSize3, currentPage3 * pageSize3)" style"width: 100%…

信号的捕捉

目录 一、内核态与用户态的切换 二、 sigaction 参数介绍​编辑 三、 signal 四、某个信号在正在捕捉期间&#xff0c;该信号不允许再次被递达 五、可重入与不可重入函数&#xff08;描述函数的特性&#xff09; 六、volatile关键字 七、SIGCHLD信号 一、内核态与用户态的…

UTS 2022 致命问题修复:达梦数据库,记录数支持100万条

UTS 数据传输系统升级说明 升级内容&#xff1a; 致命问题修复 达梦数据库作为数据源&#xff1a; 当单个时间戳的记录数超过 10,000 条时&#xff0c;系统读取可能出现问题&#xff0c;已针对该场景优化数据处理逻辑&#xff0c;提升读取性能与稳定性。当单个时间戳值的重复…

华为HCIE-Datacom认证笔试+实验考试介绍

华为HCIE数通认证考试是面向那些希望成为数通网络领域专家的人员&#xff0c;考试通常两部分&#xff1a;笔试和实验考试。 考试科目&#xff1a; HCIE-Datacom笔试考试内容&#xff1a; HCIE-Datacom V1.0考试覆盖数据通信领域路由交换高阶技术、企业网络架构全景、园区网络…

【Linux】NUMA如何梆核

在 NUMA&#xff08;非统一内存访问&#xff09;架构中&#xff0c;“绑核” 通常是指将特定的 CPU 核心&#xff08;或者 NUMA 节点&#xff09;与特定的内存区域绑定&#xff0c;以提高内存访问的局部性&#xff0c;减少跨节点的内存访问延迟。这个操作通常用于性能优化&…

vue实现页面自动滚动,鼠标悬浮暂停,移开继续

1、给div一个id <div class"kb_nei_new_left" id"chartsContainer">2、定义一个自动滚动的方法 autoSroll(Id) {// flag 为true时停止滚动var flag false;// 定时器var timer;function roll() {var h -1;timer setInterval(function () {flag …

可靠的人形探测,未完待续(I)

HI&#xff0c;there&#xff01;从紧张的项目中出来冒个泡&#xff01; 刚好想要验证一下mmWave在有人检测方面的应用&#xff0c;就看到了这个活动 - 瞌睡了有枕头属于是&#xff0c;活动策划好评&#xff01; 朋友曾关注汽车相关的技术领域&#xff0c;跟我吐槽过&#xff0…

Fastadmin地图插件在表单中的使用

表单中实现地图选择获取经纬度 1.Fastadmin后台安装地图选择插件地图位置(经纬度)选择插件 - 支持百度地图、高德地图、腾讯地图 – 基于ThinkPHP和Bootstrap的极速后台开发框架 2.腾讯地图开放平台后台创建应用创建KEY&#xff0c;配置逆地址解析额度。插件配置中配置腾讯地图…

如何防范顶级应用程序安全威胁

如今的网络攻击数量是五年前的两倍多。因此&#xff0c;掌握最新的应用程序安全威胁对于防止数据泄露、经济损失和声誉受损至关重要。您还需要实施强大的安全实践&#xff0c;以保护应用程序免受最常见和最危险的威胁。 顶级应用程序安全威胁......以及如何防范这些威胁 1. 注…

普通话水平测试50个命题说话题目(新大纲)

普通话水平测试最后一题为命题说话&#xff08;30 分&#xff0c;限时3分钟&#xff09;&#xff0c;总共 50 个话题。测试的时候从 50 个话题中随机抽取两个。考生从抽到的两个话题中任选一个进行说话测试即可。 以下是 50 个命题说话题目汇总&#xff1a; 1. 我的一天 2. …