交叉编译libiconv库移植到mips平台openwrt系统

最近一段时间由于项目原因,需要将现有应用程序移植到mips平台的openwrt系统上。使用对应的编译工具链编译应用程序后就扔到系统上跑了,但是看log发现汉字转码部分报错(utf-8和gbk互转),iconv_open返回值为-1,errno为2。将转码格式中的gbk换成其他格式不报错,因此猜测是库中缺少对gbk编码的支持。

网上查了下发现openwrt中自带库对很多亚洲字符集做了屏蔽,解决方法下载libiconv源码,交叉编译产生需要的库文件。

libiconv源码下载地址

我下载的是libiconv-1.15.tar.gz,解压该文件,进入文件目录执行(注:先配置编译工具链环境然后执行下列操作):

./configure --host=mipsel-openwrt-linux --enable-shared --enable-static --prefix=/usr/local/

make

make install

之后在/usr/local/lib/目录下可以找到libiconv的静态库(libiconv.a)和动态库(libiconv.so),在/usr/local/include/目录下可以找到头文件iconv.h。将库文件和头文件复制到项目中重新编译应用程序,将生成的应用程序再次扔到系统中跑,问题解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容