zoukankan      html  css  js  c++  java
  • 02 make和目录结构

    1 make

    1.1 整体编译

    make V=s
    make -j 2 
    

    1.2单独编译一个模块

    make package/tcpdump/clean          清除编译生成文件
    make package/tcpdump/prepare        进行编译准备,包含下载软件代码包,并解压缩和打补丁  
    make package/tcpdump/configure      根据设置选项镜像配置并生成Makefile
    make package/tcpdump/compile        根据生成的Makefile进行编译
    make package/tcpdump/install        生成安装包
    

    目标文件在bin目录下
    以上命令都可以添加V=s选项查看编译过程

    2 make menuconfig解析

    • Target System机型的系列
    • Subarget机型系列的二级子菜单
    • Target Profile机型的配置
    • Target Imagerootfs嵌入到kennel
    • Global build setting
    • Administration管理工具
    • Development开发工具
    • Firmware无线网卡的操作系统
    • Kernel modules内核模块
    • Libraries常用库

    3 目录结构

    • bin或者sbin
      放可执行文件
    • etc
      配置文件
    • mnt
      挂在点
    • procsys
      内核创建,两者并存。proc不容易管理
    • usr
      用户目录
    • www
      Luci等相关的资源文件
    • dev
      设备
    • lib
    • overlay
      overlay文件系统则表示一个文件系统覆盖在另一个文件系统上面。平时操作时,不会直接去修改底层文件系统,而是在overlay上进行操作
    • rom
      静态文件,初始文件
    • tmp
      临时目录
    • var
      存放临时文件

    4 顶层目录概述

    编译生成的结果会存储在3个目录下:
    build_dir/host:是一个临时目录,用来储存不依赖目标平台的工具
    build_dir/toolchain-<arch>*:用来储存依赖于平台的编译工具链
    staing_dir/toolchain-<arch>*:编译工具链最终安装的位置

    4.1 openwrt编译生成目录

    5 编译脚本

    5.1 scripts

    目录scripts为编译工具脚本文件,在编译时首先将patch目录下的所有补丁打上(如果失败则直接退出编译)。

    5.2 feeds编译扩展机制

    feed:非官方的包
    package:官方的包
    feed最后会合入到package
    feeds由两部分组成:
    扩展包位置配置文件feed.conf.default
    脚本工具feeds

    ./scripts/feeds update -a
    ./scripts/feeds install -a
    

    上述操作就是利用feeds提供的接口将OpenWrt所需的全部扩展软件包进行下载并安装

    update:    下载feeds.conf或feeds.conf.default文件中的软件包,并创建索引。
                -a 表示更新所有的软件包。只要更新后才能进行后面的操作
    list:      从创建的索引文件 feed.index 中读取列表并显示(只有更新之后才可以使用)
    install:   安装软件包及它所依赖的软件包。从feeds目录安装到package目录。及在package/feeds目录下创建软链接。只有安装之后才能对相关的软件包进行编译。
    search:    按照传入的字符串,查找软件包
    uninstall: 卸载软件包,仅删除本软件包的软链接
    clean:     删除update命令下载和生成的索引文件。不会删除install创建的链接
    

    feeds处理过程:读取并解析feeds.conf配置文件。然后执行相关的命令。
    编译扩展安装过程就是将feeds目录下的软件包链接到package/feeds对应目录下。可以使用feeds.conf或者feeds.conf.default。优先选择feeds.conf。此文件包含3部分,feed方法,feed名字,feed

  • 相关阅读:
    HTTP Status 500
    HTTP Status 500
    HTTP Status 500
    测试错误ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.问题的解决
    页面报错误:HTTP Status 500
    eclipse怎么设置在新建JSP文件的编码为UTF-8?
    linux 开启oracle监听
    linux 修改环境变量
    linux 修改oracle的字符集
    Cannot change version of project facet Dynamic Web Module to 2.5
  • 原文地址:https://www.cnblogs.com/burnk/p/15759653.html
Copyright © 2011-2022 走看看