config:
存着系统的配置文件
- Config-build.in:单纯编译最基本的配置文件。
- Config-devel.in:基于开发的配置文件。
- Config-images.in:配置生产镜像文件。
- Conifg-kernerl.in:配置内核。
- build_dir:中间件
- 配置文件过程:
- .in—>.config—>脚本解析
- 作用:控制整个编译过程,是整个系统的配置文件,默认配置的控制脚本,如果需要增加新的编译选项,需要按照.in文件格式进行设计。
-
include:
存放着.mk文件,makefile文件,解析.config文件。- 最高层的makefile—>/inlcude/.mk
- 作用:提供makefile的编译脚本,控制整个编译过程,解析.config文件,生产部分变量,完成各个模块的编译。
-
package:
存放非常多的软件包,开发的第三方软件和开源软件。二次开发。- 类型目录—功能目录—软件目录
- 存在第三方软件的Makefile模板,可以按照这个模板git或其他方式下载第三方软件并安装。
- 作用:Makefile文件中提供第三方软件的版本、下载地址、编译方式、安装地址,具有标准模板,第三方软件需要按照标准模板,自行添加软件的编译脚本。
-
scripts:
所以编译过程中使用的脚本都会存放在此目录,如:web中的脚本等等。 -
target:
存放用于编译各类CPU适合的文件,定义了各类CPU编译固件和内核的具体过程。 -
tools:
通用的编译工具。 -
toolchain:
嵌入式交叉编译工具。 -
feeds.conf.default:
由脚本文件feeds使用的配置文件,配置文件中定义了大量的第三方软件包的下载地址。 -
rules.mk:
定义了系统Makefile使用的各类变量和函数。
编译过程产生的目录:
-
dl:
在编译过程中,各类需要下载的包都要保存在这个目录下(编译过程中用的工具)。当编译过程卡在了某个包下载问题时,可以手动下载并存放在dl目录中。
-
feeds:
系统的软件管理包,所以的第三方应用软件,所以下载的软件包(openwrt系统自用)
./scripts/feeds update -a
./scripts/feeds install -a
-
build_dir:
编译过程中产生的工具,交叉编译工具,最终的目标文件等都会存放在此处。
host:tools文件中各类工具编译的结果存放在host中。
target-xxxx:编译完成的目标文件,包含系统的各类软件包,内核、文件系统等。
toolchain-xxxx:tools-chain交叉编译工具最终编译的结果文件。
-
bin:
编译完成后,所以的ipk包,所有的内核镜像文件都会在此。 -
staging_dir:
存放build_dir文件中各类编译成功的软件,所以和build_dir中的目录结构是相同,最终存放编译结果的地方。各类系统库、头文件等都在该文件夹下,在自行开发第三方软件时,编译过程中头文件、链接动态库、链接的静态库都会保存在该子文件夹下。
-
tmp:
编译过程的大量临时文件都会在此。 -
logs:
报错日志。