[技巧靠点点滴滴的积累] Linux平台下如何将make编译的所有信息保存至文件?

嵌入式Linux开发:BusyBox配置、编译与深度定制实战指南 在嵌入式Linux开发中,构建精简高效的根文件系统是核心任务之一。其原理在于通过工具链裁剪与集成,将系统必需的基础工具和服务压缩到最小体积,以适应资源受限的硬件环境。这一过程的技术价值在于能显著降低存储占用和内存开销,提升系统启动速度与运行效率。其应用场景广泛覆盖智能家居、工业控制、网络设备等各类嵌入式产品。本文聚焦于BusyBox这一关键组件,它如同瑞士军刀,将上百个Unix工具集成于单一可执行文件,并通过符号链接机制调用,是实现系统裁剪的基石。文中将详细解析其配置系统、交叉编译、以及针对**嵌入式环境* 阅读详情

[技巧靠点点滴滴的积累] Linux平台下如何将make编译的所有信息保存至文件?

标签: linux平台ubuntu
494人阅读 评论(1) 收藏 举报
本文章已收录于:

Linux平台下进行make编译时,常常会遇到如下问题:编译过程中存在大量的错误信息;或者屏幕显示的信息不完整等。如何将make编译的所有信息保存至文件?

 

下面列出三种方法, 都可将make编译的所有信息重定向至文件中:

 

方法一 make 2>&1 | tee error.txt

方法二 make > error.txt 2>&1

方法三 make 2> error.txt

 

 

注意:2和>一定要写在一起!

 

注明:  ( 验证环境  -  wolfrun@Ubuntu 8.10-desktop )

顶
0
踩
0
 
 
Linux内核编译安装全流程详解:从环境配置到启动优化 内核作为操作系统的核心,负责管理系统资源、驱动硬件和提供基础服务。其工作原理是通过模块化设计,将进程调度、内存管理、文件系统等核心功能封装为可配置的组件。掌握内核编译技术,能够根据特定硬件和应用需求定制系统,提升性能与安全性,在服务器优化、嵌入式开发和系统调优等场景中具有重要价值。本文以Linux内核编译为例,详细解析从源码获取、环境配置到模块安装的完整流程,涵盖make menuconfig配置、initramfs生成等关键步骤,并针对常见编译错误和启动失败问题提供解决方案,帮助开发者深入理解系统底层机制 阅读详情

相关推荐

GNSS/INS松组合导航实战:如何用卡尔曼滤波提升定位精度(附MATLAB代码)

本文深入探讨了GNSS/INS松组合导航的工程实践,详细阐述了如何利用卡尔曼滤波算法融合卫星与惯性数据以提升定位精度。内容涵盖从仿真环境搭建、误差状态卡尔曼滤波器(ESKF)设计,到状态与观测方程实现、噪声参数调试及常见问题排查的全过程,并提供了可直接运行的MATLAB代码,为开发高精度、鲁棒的组合导航系统提供实战指南。

weixin_29057163的博客 165

C++之保存编译全部中间文件(二百一十五)

本篇目的:理解C++之保存编译全部中间文件。

Android系统攻城狮 479

保姆级教程:Win10/Win11系统下ArcGIS 10.2中文版完整安装与破解(含License Manager启动失败解决方案)

本文提供Windows 10/11系统下ArcGIS 10.2中文版的完整安装与破解教程,重点解决License Manager启动失败等常见问题。从安装准备、破解文件处理到最终配置验证,详细指导用户完成每一步操作,确保软件正常运行。特别针对主机名修改、端口占用等疑难问题提供专业解决方案。

weixin_29596051的博客 546

Linux系统中保存make编译时的信息

在Linux系统中,经常会使用到make命令进行编译,而且编译的时间往往会比较长,并且会超过Shell查看的范围,为了便于查看编译的情况并进行分析,我们可以将终端上的编译信息保存到文件中。 举例说明保存编译信息的行命令,它把make过程中打印的所有信息都保存在xxx.log中。 $make 2>&1|tee ./xxx.log 其中, 0标准输入stdin = sta...

zqxdsy的博客 5148

Microapp 接入vite子应用

MicroApp接入vite版本,干货满满,手把手步骤说明,加上报错说明,赶紧上车!

outsider76557的博客 4659

如何导入su_利用GIS快速生成SU场地模型

01|前言:进入2021年了,希望大家也是一个新的开始。告诫自己多写文章多更新,多读点书多旅行。然而元旦由于出去玩了4天,积累了一些事情要处理,一直没有时间好好写点东西。今天给大家带来的分享主题叫“利用GIS快速生成SU场地模型”。相关的视频方法其实B站上也有,但我相信视频很多人都不会看,我自己也是。直接给大家上操作流程。主要的操作步骤是【获取场地的矢量shp文件】—【导入ArcScen...

weixin_33806859的博客 9813

make时,将错误定向到一个文件中

make 2> error.txt 就可以将错误信息重定向到文件了。注意:2和>一定要写在一起!  make > /dev/null

s_k_yliu的专栏 680

一文速览:大模型语料构建与基础训练全流程实战指南

因为模型只有看到足够丰富、高质量的数据,才能真正学到“真本事”,展现出更强大的泛化能力,也就是能够在全新的场景和任务下,做出准确的推理和判断。我们日常做饭的时候,通常会先把买回来的菜仔细清洗干净,把坏掉的叶子、泥土、杂质等去除掉。同理,训练大模型的数据就像我们的食材,如果不干净,就会影响模型的学习效果,甚至训练出逻辑紊乱的模型。在大模型的世界里,有一句名言:“Garbage in, Garbage out”,翻译过来就是“垃圾输入,垃圾输出”,说白了,就是给模型喂的是什么数据,它学到的就是什么知识。

master_hunter的博客 1671

Linux输出内容到指定文件

问题:已知存在某大文件big.txt,其中有一行有内容“start point”,有一行有内容“end point”,请以“start point”所在行为起始行,“end point”所在行为终止行,请截取两行间(含起止行)的内容至小文件little.txt。是把输出转向到指定的文件。注意:如文件已存在的话会重新写入,文件原内容不会保留。是把输出附加到文件的后面,文件原内容会保留下来。练习内容:截取大文件中指定连续行的内容至小文件。

qq_38662733的博客 9393

PCL 提取两片点云的非重叠部分【2025最新版】

PCL 提取两片点云的非重叠部分。博客长期更新,本文最近一次更新时间为:2025年9月1日。

点云侠的博客 36万+

数字信号处理----数字上变频和下变频都FPGA实现

** 数字信号处理基础----信号下变频和解调 一、 任务介绍 数字上变频器(DUC)和数字下变频器(DDC)广泛应用于通信系统,用于信号采样速率的转换。当信号从基带转换至中频( IF )带,需要使用数字上变频器。而数字下变频器是用于将信号从中频( IF )带转换为基带。DUC和DDC通常包括使用混频器进行频率转换,此外还有采样率转换。DUC或DDC的结构主要取决于所需要的转换率。例如,WiMAX (全球互通微波接入)系统典型的转换率为8—10阶。对于如此低的转换率,DUC和DDC只需采用FIR滤波器架构。

Born_toward的博客 3万+

linux下如何将编译过程信息保存到指定文件

在linux环境中,命令行编译时有时候产生的错误信息会超出终端向上查看的显示范围。这个时候就需要把这些错误信息保存到一个文件中,方便解决编译错误。 可以使用下面的命令实现 make 2>&1|tee filename 在linux shell定义中,0表示标准输入,1表示标准输出,2表示标准错误信息输出。filename表示你要指定的文件,可以指定后缀名。例如error.l...

weixin_30823001的博客 582

支付宝h5参数如何实现跳转?(包含相关Demo代码)

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 3248

make编译常见命令汇总

通过接触了一段makefile,对makefile相关的基础命令,函数做下梳理

恋蛩音的博客 3057

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

linux 编译相关知识积累

<br />1.linux 编译时提示警告系统时钟错误,<br /> 解决方法: 在root的终端输入find . -type f -print | xargs touch即可。。<br />是由于内核时间和源程序的时间冲突<br /> 用touch 命令把源程序的时间戳改一下<br /> find -exec touch {} /;<br /> 然后make就好了<br /> 或者直接修改时间成正确的重新make也可以<br /> <br />2. 交叉编译工具的位置 /usr/local/ar

jaylin2013的专栏 618

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

linux下的命令积累

linux下的命令积累 nautilus . 这个命令就是以root权限打开一个窗口,来管理文件。直接打开很多文件夹和文件是root用户才能操作,所以你对该文件夹或文件只有查看的权限,不能进行粘贴,剪切,删除等操作,也不能建立新文件,而用nautilus命令后就可以了。

x2017x的博客 232

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

如何提取被编译的源文件(提取linux内核源码为例)

本文介绍了两种源码提取工具cce_for_linux_kernel和cce,用于从大型项目中提取实际编译的源代码。cce_for_linux_kernel专为Linux内核开发设计,可通过分析编译依赖关系将内核源码缩减至原大小的1/5,便于学习研究。通用工具cce支持各类C/C++项目,已成功在多个开源软件上测试验证。两种工具都能显著减少代码量,提高代码阅读效率,适用于内核学习、项目快速上手和培训材料制作等场景,帮助开发者聚焦核心代码,提升工作效率。

zfxwasaboy的博客 1297

[转]编译Linux内核

下面的实验以 debian7.5 64bit 为例. 获取源码 获取 debian7.5 本身的源码非常简单: sudo apt-get install linux-source https://www.kernel.org/的git上提供的源码分支非常多, 刚开始学习源码主要关注下面几个分支: linus分支:https://git.kernel.org/cgit/linux/k...

qq_20252351的博客 295

嵌入式Linux内核编译实战技巧与优化指南

Linux内核编译是嵌入式系统开发的核心环节,其本质是通过交叉编译工具链将源代码转换为目标平台可执行的二进制文件。理解编译原理需要掌握工具链配置、Makefile构建系统等关键技术,这些技术直接影响系统性能与稳定性。在ARM架构嵌入式设备中,合理的内核编译配置能显著提升启动速度和运行效率。通过参数化配置、源码与编译产物分离等工程实践,可以解决团队协作、版本控制等实际问题。本文基于ARM平台实战经验,详解交叉编译环境配置、目录结构设计等关键技巧,并分享生产环境中的编译脚本模板与性能优化方案,特别适合需要处理U

weixin_42620563的博客 438

linux编译模块时怎么包含其他c文件夹,LINUX 2.6 内核下多C文件模块编译方法

MODULE_NAME :=testRESMAN_CORE_OBJS :=hello1.oRESMAN_GLUE_OBJS :=hello2.o$(MODULE_NAME)-objs := $(RESMAN_CORE_OBJS) $(RESMAN_GLUE_OBJS)obj-m:=test.oKERNELDIR ?= /lib/modules/$(shell uname -r)/buildPWD...

weixin_39966644的博客 326

Linux(deepin)知识积累

Linux(deepin)知识积累 一、关于源代码包(deepin系统) 1.前言 首先要说的是tar.gz不是软件包格式,而是压缩档格式,你可以把任何格式的东西压缩成tar.gz文件,就像.7z , .zip和.rar一样。 你下载的tar.gz包装的软件很可能是源码,但也有的地方把二进制码打包成tar.gz的,而deb包里包装的是二进制码和少量配置文件。把源码转换到deb文件的过程需要编译软件并制作配置文件,比较麻烦。 对于常见的软件,已经有人打包好了,都可以从软件源安装,没有必要从源码安装。如果你下载

ligq1999的博客 1455

【知识积累】大数据旅程-Linux 编译安装

编译安装 rpm安装:包 yum安装:仓库 编译安装 tengine:nginx淘宝的开源版1、上传2、解压: tar xf tengine-2.1.0.tar.gz3、源码编译 make命令使用的前置文件:makefile 查看readme文件:Installation 4、安装步骤step1: 查看参数说明 ./configure --help | more 安装目录(usr:安装程序目...

Darren的博客 210

嵌入式openwrt平台(mt7688)上使用讯飞语音服务以及编译好的库文件

第一步(应用的创建和SDK的下载):首先你需要一个讯飞开放平台的开发者账号,登陆后点击控制台,然后找到  上图选项点击,然后会进入以下界面, 填写相关信息,选择应用平台,当然了这里我们必须选择Linux平台,点击提交,应用就创建完成了。 接着点击 在这里我们能找到刚刚我们创建的应用,我这里名称是linux二代听橙,在应用下方点击 然后会弹出请选择开通的业务的对话框,选择我们需要用到的业务即可。 我...

u010871058的专栏 1165

【LINUX 交叉编译ARCH、CROSS_COMPILE简化 积累经验】

积累经验

qq_51384120的博客 328

用CMake代替makefile进行跨平台交叉编译

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33701617的博客 197

Linux命令积累

Linux命令 压缩解压 压缩:tar -cjf 文件 解压:tar -xjf 文件 文本搜索 grep -Rn “目标” * grep -l 列出模式匹配的文件名 计数 wc -l/-c/-w 文件 选项只取一个 本别对应 计算 行数,字符数,单词数 找文件 根据文件名找:find 目录 -name ‘模式’ 根据文件内容找:grep -Rn ‘模式’ 路径 vim...

mgfsos的博客 137
上一篇: 2017-03-09
下一篇: 写给优快云工作人员的一封信
「已注销」
博客等级 码龄10年 11粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值