linux下make命令实现输出高亮的方法
<p><span><strong>前言</strong></span></p>
<p>
无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令。最近在调试代码,make 输出信息的时候 error 、warning 等信息都是和普通信息一样白色打出来的,和普通信息一样很难区分。每次就要在茫茫多的输出信息中找那个小小的error 才看是哪一行出了问题,有时候运气不好还可能来来回回看好几遍才找到。</p>
<p>
这里提供一种解决办法进行相关处理,让make输出的信息不再那么难找。</p>
<p>
<span><strong>注意:</strong></span>gcc 在4.9 版本后已经有相关的颜色标记了,直接添加<code> -fdiagnostics-color=auto </code>参数即可</p>
<p>
<strong>对象:</strong>公司的编译服务器(debian系,内核 3.2 )</p>
<p>
<span><strong>一、改造服务器登录shell</strong></span></p>
<p>
服务器默认登录进去的shell是sh,但是我想使用bash,进行以下操作就可以了:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_804804">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># chsh</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">Password: </code><code class="bash plain">//</code><code class="bash plain">输入你的密码就</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">Changing the login shell </code><code class="bash keyword">for</code> <code class="bash plain">jet</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">Enter the new value, or press ENTER </code><code class="bash keyword">for</code> <code class="bash plain">the default</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash spaces"> </code><code class="bash plain">Login Shell [</code><code class="bash plain">/bin/sh</code><code class="bash plain">]:</code><code class="bash plain">/bin/bash</code> <code class="bash plain">//</code><code class="bash plain">回车</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
关闭shell 再次登录的时候检查是否切换到了bash.。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_398729">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># echo $SHELL</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">/bin/bash</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
这就代表切换成功了。</p>
<p>
检查下环境变量。貌似 .bashrc 没有自动执行:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_192683">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># vim ~/.profile</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">//</code><code class="bash plain">添加下面内容</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">source</code> <code class="bash plain">~/.bashrc</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
再次关闭shell后登录,已经成功加载 .bashrc了。</p>
<p>
<span><strong>二、真正动手处理make输出</strong></span></p>
<p>
这里处理make输出使用的是一个github上的小程序,地址如下:</p>
<p>
github地址:https://github.com/chinaran/color-compile</p>
<p>
本地下载地址:https://xiazai.jb51.net/201707/yuanma/color-compile(jb51.net).rar</p>
<p>
下载好后放到编译服务器中,进行解压和编译:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_321260">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">unzip color_compile.zip</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">cd</code> <code class="bash plain">color_compile/</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">\</code><code class="bash functions">make</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">cp</code> <code class="bash plain">color_compile out_color_info ~</code><code class="bash plain">/program/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
因为我没有root权限,所以只有曲线救国,将需要程序直接拷贝到我的program目录中,然后在修改 .bashrc</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_126085">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">vim ~/.bashrc</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">//</code><code class="bash plain">添加如下内容</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">export</code> <code class="bash plain">PATH=</code><code class="bash plain">/home/jet/program/</code><code class="bash plain">:$PATH</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">alias</code> <code class="bash plain">arm-openwrt-linux-gcc=</code><code class="bash string">"color_compile arm-openwrt-linux-gcc"</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash functions">alias</code> <code class="bash plain">arm-openwrt-linux-g++=</code><code class="bash string">"color_compile arm-openwrt-linux-g++"</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash functions">alias</code> <code class="bash functions">make</code><code class="bash plain">=</code><code class="bash string">"color_compile make"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
然后在生效下环境变量:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_857256">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">source</code> <code class="bash plain">~/.bashrc</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
去源代码目录中尝试下输出是否正确,如下图所示:</p>
<p>
<img title="linux下make命令实现输出高亮的方法" alt="linux下make命令实现输出高亮的方法" src="https://zhuji.jb51.net/uploads/img/202305/de08bcfdb44e6dc59114cd2a2608e3a9.jpg"></p>
<p>
原谅我大花脸的打马,主要是公司代码,分毫不敢乱搞事,总之,看到有颜色输出就对了。好了,大功告成。</p>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
原文链接:http://www.jianshu.com/p/a3f65aa955dc</p>
頁:
[1]