因为需要安装 su sudo useradd groupadd chown login 等用户管理命令,会访问passwd文件。用到了 getpwant_r 函数。具体是哪个命令引起的,暂时不知。
报错如图:
经过了解,发现 函数 getpwent_r 是一个可从入函数,也就是 getpwent 线程版本。 作用是,获取 passwd 文件的内容。包含在 pwd.h 头文件下。但是搜索了交叉编译器的头文件之后,确实没有发现关于这个函数声明。继续百度后找到这个函数是属于 glibc 的。这是linux系统中最底层的api,所以,这个库应该是安装了,但是因为是嵌入式系统,可能做了部分优化,所以本来进入到 menuconfig 中 一条条的找关于 glibc 的描述。最终发现关于交叉编译器的高级选项中有一项描述 glibc 的, 如图:
根据提示,选中相应配置:
[*] Advanced configuration options (for developers) --->
[*] Toolchain Options --->
(e)glibc version (glibc 2.21) --->
之后 make ,大约2个小时后编译成功。会发现在 openwrt 工作目录下 的bin 目录想 多出来一个 ramips-glibc 目录。 里面就有编译好的镜像包。烧录到板子即可。