openwrt buildroot build_dir和staging_dir

dud*_*ing 22 openwrt

我感到困惑build_dir,并staging_dir在OpenWrt的buildroot的.它们用于什么?

feeds在OpenWrt的.我想要建立一个图像.您将选择所需的包menuconfig并用于make构建它.

从中获取包feeds然后编译成build_dir

然后staging_dir用于什么?

6EQ*_*UJ5 33

该目录build_dir用于解压缩所有源存档并将其编译.

该目录staging_dir用于"安装"所有已编译的程序,准备用于构建更多包,或用于准备固件映像.

下面有三个方面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/,lib/等等,包含用于构建其余固件的交叉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-...包含每个目标包同样被设置为"安装"版本bin/,lib/这将成为实际的根目录下,以一些调整会得到压缩了进入固件映像,像root-ar71xx.还有一些其他文件staging_dir/target...主要用于生成包和开发包等.

对不起它有点冗长,这很难描述得更简洁.