openwrt undefined reference to ‘getpwent_r’

因为需要安装 su sudo useradd groupadd chown login 等用户管理命令,会访问passwd文件。用到了 getpwant_r 函数。具体是哪个命令引起的,暂时不知。


报错如图:

openwrt undefined reference to ‘getpwent_r’_第1张图片


经过了解,发现 函数 getpwent_r 是一个可从入函数,也就是 getpwent 线程版本。 作用是,获取 passwd 文件的内容。包含在 pwd.h 头文件下。但是搜索了交叉编译器的头文件之后,确实没有发现关于这个函数声明。继续百度后找到这个函数是属于 glibc 的。这是linux系统中最底层的api,所以,这个库应该是安装了,但是因为是嵌入式系统,可能做了部分优化,所以本来进入到 menuconfig 中 一条条的找关于 glibc 的描述。最终发现关于交叉编译器的高级选项中有一项描述 glibc 的, 如图:

openwrt undefined reference to ‘getpwent_r’_第2张图片

根据提示,选中相应配置:

[*] Advanced configuration options (for developers)  ---> 
	[*]   Toolchain Options  --->
		(e)glibc version (glibc 2.21)  --->  

之后 make ,大约2个小时后编译成功。会发现在 openwrt 工作目录下 的bin 目录想 多出来一个 ramips-glibc 目录。 里面就有编译好的镜像包。烧录到板子即可。


你可能感兴趣的:(openwrt undefined reference to ‘getpwent_r’)