make使用技巧
源码编译时有错误出现在 Linux 下是很正常的事,关键是要懂得查看错误信息。一般 Linux 下的错误主要是由路径、权限、链接库造成的,可以针对这些内容进行筛选,找出出错的原因并加以解决。
对于编译一些时间长,输出多的库或程序,可以使用 make 2>&1 | tee build.log 来在文件和控制台同时输出 标准输出、标准错误输出
然后在log日志文件中直接搜索/error /ERROR /ABORT 查看错误信息
ask
make 2>&1 | tee build.log 求解释
问题1: 2 , &1 表示什么意思
问题2: 和 make > build.log 有什么区别吗
answer
问题1:表示的是文件描述符。0 stdin,1 stdout,2 stderr 2>&1,表示标准错误重定向到标准输出
问题2:作用上没有区别,后者是把make的所有输出都重定向到文件build.log当中
1. 如果没有2>&1,只会有标准输出,没有错误;
2. tee的作用同时输出到控制台和文件
find 使用技巧
报错: undefine reference XXX变量或函数
原因基本上是找不到相关的lib库文件,要么是机器上没有该库文件,要么是环境变量没有配置好,无法连接到该文件。
可以尝试如下命令
find . -type f -exec grep -Ho nc_get_vars {} \; | uniq
作用是:在当前目录下的所有文件里找变量nc_get_vars并输出文件名
有特殊符号的如:udunits.h 需要用双引号 “udunits.h” 包含起来
一般会找到 configure 文件中连接该lib文件的变量,或是直接找到源码文件
如果是找不到文件
可以用
find . -name "udunits.h"
来检查是在当前目录下有该文件
ubuntu系统可以通过
apt-cache search udunits
查找是否在软件源中含有该库
时间: 2024-11-12 20:41:38