target is up to date 、nothing to be done、Pattern rule 分析
2021-3-13
Target更新1 如果一个target有非空recipe,则下列情况下被认为是过时的,并执行recipe。 a. target是一个PHONY目标,则target总是过时的。 b. target文件不存在,则target是过时的。 c. target文件存在,但是target没有依赖
prepare-tmpinfo详解
2021-3-15
这个目标用来检索package和target,再tmp下面生成索引和配置信息。include/toplevel.mk定义SCAN_COOKIE:SCAN_COOKIE?=$(shell echo $$$$)。首先它通过下面两个recipe来扫描所有的package和target:make -f in
gcc编译头文件搜索路径
2021-3-16
预处理器搜索头文件的方法:1 双引号包含的头文件 首先在包含它的头文件所在的目录搜索,比如/usr/include/sys/stat.h 包含 #include "types.h", GCC首先在/usr/include/sys目录寻找types.h。 然后在双引号search path寻找。
Why do you have to link the math library in C
2021-3-19
有时候,我们使用了数学函数,确不用链接-lm,例如:$ cat test.c#include #include int main(){ printf("%lf\n", log(2));}$ cc test.c$ ./a.out0.693147$ ldd
openwrt target分析
2021-5-26
openwrt分为package和target。target表示一个种目标硬件架构,比如ramips。target里面有kernel、image的概率,kernel编译内核,image编译固件。1 Board/Subtarget/ProfileBOARD是SOC的名字,target/linux/${
Makefile internal流程的两个例子
2021-3-22
看第一个Makefile:$ cat Makefiledefine aall: ifeq (1,1) echo emmendifendef$(eval $(a))$ makeMakefile:8: *** extraneous 'endif'. Stop.可以看到ife
escape of # in GNU Make
2021-4-4
在ubuntu 20上编译busybox的时候,编译过一次后,再次编译仍然会重新编译。于是开始debug,首先查看Makefile,可以单独编译一个目录: $ make applets其recipe是:make -f /work/staging/source/busybox-1.31.1/sc
vim中的tabstop shiftwidth softtabstop expandtab
2021-4-5
tabstop表示一个tab显示多宽。softtabstop是编辑的时候按tab键缩进的宽度。如果它和tabstop不相等,可能有空格。 比如tabstop为8,softtabstop为4,按第一个tab时,插入4个空格,再按一次,变成一个tab。 比如tabstop为4,softtab
openwrt package分析
2021-4-19
package是target之外的另一个概念,它表示一个包,比如busybox是一个package。package在package/目录下,比如busybox的路径为:package/utils/busybox。每个package都有一个Makefile,来定义这个package。 添
ubuntu搭建dhcp服务器
2022-4-19
安装dnsmasq$ sudo apt install dnsmasq创建配置文件:dnsmasq.confport=0dhcp-range=192.168.0.10,192.168.0.254,255.255.255.0dhcp-leasefile=/run/dnsmasq/dnsmasq.lea
Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.