• 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

  • 相关阅读:
    poj3253Fence Repair (Huffman)
    poi3617Best Cow Line ——贪心法
    高级排序之——归并排序
    Aizu
    初级排序——冒泡排序
    cookie会话
    加载web资源文件
    servlet
    Http

  • 原文地址:https://www.cnblogs.com/burnk/p/15759653.html
Copyright © 2020-2023  润新知