我对openwrt buildroot中的 build_dir 和 staging_dir 感到困惑 . 它们用于什么?
build_dir
staging_dir
在openwrt中有 feeds . 我想要 Build 一个图像 . 您将在 menuconfig 中选择所需的包,并使用 make 来构建它 .
feeds
menuconfig
make
包从 feeds 获取,然后编译成 build_dir ?
那么 staging_dir 用于什么?
目录 build_dir 用于解压缩所有源存档并在其中编译它们 .
目录 staging_dir 用于"install"所有已编译的程序,可用于构建更多程序包或准备固件映像 .
build_dir 下有三个区域:
build_dir/host ,用于编译在主机上运行的所有工具(OpenWRT构建自己的 sed 版本以及源中的许多其他工具) . 此区域将用于编译仅在主机上运行的程序 .
build_dir/host
sed
build_dir/toolchain... 用于编译将用于构建程序包的交叉C编译器和C标准库组件 . 该区域将用于编译仅在您的主机(例如,交叉C编译器)上运行的程序,以及用于在链接到目标的目标上运行的库 . uClibc,libm,pthreads等
build_dir/toolchain...
build_dir/target... 用于编译目标系统的实际软件包和Linux内核
build_dir/target...
在分期中,还有三个方面:
staging_dir/host 是一个迷你Linux根目录,它有自己的 bin/ , lib/ 等主机工具安装到其中;然后构建系统的其余部分在其PATH前面加上该区域中的目录
staging_dir/host
bin/
lib/
staging_dir/toolchain... 是一个迷你Linux根目录,它有自己的 bin/ ,_ _1189580_等,其中包含用于构建其余固件的交叉C编译器 . 您实际上可以使用它来编译OpenWRT之外的可以加载到固件上的简单C程序 . C编译器可能类似于: staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-uclibc-gcc . 您可以看到CPU的版本,C库和编码的gcc;这允许同时在同一区域内构建多个目标 .
staging_dir/toolchain...
staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-uclibc-gcc
staging_dir/target.../root-... 包含'installed'版本的每个目标包再次与 bin/ , lib/ 一起排列,这将成为实际的根目录,通过一些调整将压缩到固件映像,类似于 root-ar71xx . staging_dir/target... 中还有一些其他文件主要用于生成包和开发包等 .
staging_dir/target.../root-...
root-ar71xx
staging_dir/target...
对不起它有点冗长,这很难描述得更简洁 .
1 回答
目录
build_dir
用于解压缩所有源存档并在其中编译它们 .目录
staging_dir
用于"install"所有已编译的程序,可用于构建更多程序包或准备固件映像 .build_dir
下有三个区域:build_dir/host
,用于编译在主机上运行的所有工具(OpenWRT构建自己的sed
版本以及源中的许多其他工具) . 此区域将用于编译仅在主机上运行的程序 .build_dir/toolchain...
用于编译将用于构建程序包的交叉C编译器和C标准库组件 . 该区域将用于编译仅在您的主机(例如,交叉C编译器)上运行的程序,以及用于在链接到目标的目标上运行的库 . uClibc,libm,pthreads等build_dir/target...
用于编译目标系统的实际软件包和Linux内核在分期中,还有三个方面:
staging_dir/host
是一个迷你Linux根目录,它有自己的bin/
,lib/
等主机工具安装到其中;然后构建系统的其余部分在其PATH前面加上该区域中的目录staging_dir/toolchain...
是一个迷你Linux根目录,它有自己的bin/
,_ _1189580_等,其中包含用于构建其余固件的交叉C编译器 . 您实际上可以使用它来编译OpenWRT之外的可以加载到固件上的简单C程序 . C编译器可能类似于:staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-uclibc-gcc
. 您可以看到CPU的版本,C库和编码的gcc;这允许同时在同一区域内构建多个目标 .staging_dir/target.../root-...
包含'installed'版本的每个目标包再次与bin/
,lib/
一起排列,这将成为实际的根目录,通过一些调整将压缩到固件映像,类似于root-ar71xx
.staging_dir/target...
中还有一些其他文件主要用于生成包和开发包等 .对不起它有点冗长,这很难描述得更简洁 .