国际化

1 篇文章 0 订阅

        linux国际化需要一个叫做gettext的库支持,然而它又需要glibc 或者 iconv库的支持,在嵌入式开发中这一切都是需要我们自己构建的。

但是很不巧提供给我们交叉编译工具链的厂商没有给我们提供glibc的charmaps(字符转换映射表) gconv(字符转换所需动态库)。

        起初尝试使用crosstool编译一套gcc版本、glibc版本都与厂商一样的库,但是把C库、busybox,等等一些我们自己有源代码的库放到了根文件系统中,然后使用这个文件系统构建文件系统image,烧到板子上,运行起来总是有些我们没有源代码的驱动跑的不正常。

        于是采用了另一种方法,首先使用crosstool编译了一套gcc版本、glibc版本都与厂商一样的库,它哪里面会有charmaps gconv文件夹,然后把这两个文件夹分别mount到板子的/usr/share/i18n/charmaps /usr/lib/gconv上,再次运行程序问题解决。

        对/usr/share/i18n/charmaps /usr/lib/gconv进行裁减,运行需要进行转码(UTF8->GB2312)的程序然后执行cat /proc/程序id/maps发现只有GBK.so在使用,于是质保留了/usr/share/i18n/charmaps/GBK.gz /usr/lib/gconv/GBK.so /usr/lib/gconv/gconv-modules 这三个文件再次运行程序,问题解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值