如何在 CentOs 下编译 OpenWrt 固件

简单的记录一下如何在 CentOs 下编译 OpenWrt 固件

编译前准备

  • 安装必要的工具包

    • yum groupinstall "Development Tools"
    • yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel
  • 下载源代码 (最新的是 LEDE)

    • git clone https://git.lede-project.org/source.git lede
  • 进入目录 下载扩展

    • cd lede
    • ./scripts/feeds update -a
    • ./scripts/feeds install -a

配置编译参数

  • 清理编译(如果是第一次编译可以忽略)

    • make clean
  • 生成默认配置

    • make defconfig
  • 打开配置菜单 配置编译参数

    • make menuconfig

开始编译

  • 执行编译
    • make V=99
  • 编译结束后文件生成在 bin 目录下

编译错误解决

如果遇到 gconvert.c:61:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv

  • 编译 iconvlib
    • cd build_dir/host/pkg-config-0.29.1/glib/
    • ./configure --enable-iconv=no --with-libiconv=gnu