Makefile
目标文件:生成目标文件所需的文件执行体
符号 | 含义 |
---|---|
:= | 向前取变量的变量 |
# | 表示变量定义的终止 |
?= | 表示定义过则赋值,否则不操作 |
$(var:a=b) | 将var中以a结尾的换成b |
substr | 替换函数 |
$(<function><arguments>) | 函数调用 |
$(substr<from>,<to><text>) | 替换 |
patsubst | 将某种模式的值替换掉 |
strip | 去空格【开头和结尾】 |
findstring | 查找并返回字符串,否则返回空字符串 |
$(filter <pattern>,<text>) | 查找符合模式pattern的字符串 |
filter-out | 返回不符合模式pattern的字符串 |
sort | 排序 |
word | 返回第n个单词,否则返回空 |
dir | 取/前的目录 |
nodir | 取/后的目录 |
basename | 取前缀 |
make的退出码 0为成功执行,1为出现错误
2/-q 退出且不需要更新
GNU make 是在目录下依次找 GNUmakefile/makefile/Makefile
指定 可使用 makefile -f **.mk
make的环境变量是MAKECMDGOALS
隐含规则 CFLAGS控制编译时的编译参数
-r可取消所有预设置中的隐藏规则
隐含规则的命令 $(CC) -C $(CFLAGS) $(CPPFLAGS)
日常工作用到的一些缩写
- CCD 电荷耦合器件(CCD)
电荷表示信号大小,用耦合方式传输信号的探测原件 - OCR optic character recognize
光学字符识别技术,图像转文本 - SANE scanner access now easy
光栅图像扫描硬件标准化的访问 - CIS contact Image Sensor
- DPI Dots Per Inch
- PID/VID Packet Identifier/Vendor ID
- ADF Automatic Document Fender
- DADF Double Automatic Document Fender
关于RPM和DPKG
rpm -qa|grep packagename 筛选安装过的包
rpm -ivh packagename 安装程序/应用
rpm -e packagename 卸载安装软件
rpm -qpR packagename 查看rpm包的依赖关系,若已安装可使用rpm -qR查询
使用nodeps可使其安装时不检查依赖关系(dpkg or rpm?)
Tab键可直接输出软件包的全称
上下键可复制粘贴出对应的输入命令
ctrl+c 终端停止命令
rpm添加库文件报错cpio:Digest mismatch 可以使用prelink -u操作库文件后再打包即可
关于打包提示invalid rpath报错,可以使用
QA_RPATHS=0x0002 rpmbuild -ba ***.spec
#0x0001 standard rpath
#0x0004 insecure rpath
rpm打包提示空%file文件 debugsourcefiles.list:在rpmbuild加上–nodebuginfo
vim 查找关键字
shift+: 进入命令行模式
/+关键字 回车后查找 n:查找下一个 N:查找上一个
dpkg -l \| grep packagename #筛选安装过的包
dpkg -i packagename #安装应用
dpkg -r packagename #卸载应用 使用-P或者--purge 可完全卸载安装过的包
dpkg --ignore-depends=libc6 -i packagename #去掉依赖项
#dpkg列表中存在rc状态的软件包,可以使用如下命令清理
dpkg -l|grep ^rc|awk '{print $2}'|sudo xargs dpkg -P
#软件包post-removal脚本子进程返回错误状态1
vim /var/lib/dpkg/status #找到对应的包名,删除包名对应的一整段
常用到的shell命令
命令 | 含义 |
---|---|
rm -i filename | 删除文件夹 |
sed -i | 直接对文本文件进行操作 |
grep -r ‘**’ | 查找当前问之下所有文件中包含**的位置显示 |
gunzip ***.gz | gz文件解压 |
tar -xf | tar文件解压 |
tar -xjvf | .tar.bz2 文件解压 |
tar -cjf | .tar.bz2 文件压缩 |
tar -zxvf | .tar.gz 文件解压 |
tar -xcvf | .tar.gz 文件压缩 |
find / -name filename | 查找文件 |
解决一些小问题:
make[1]: 警告 文件的修改时间在将来的……
使用: find ./* -exec touch {} +;