libiconv库在arm平台的使用

  1. 通过交叉编译得到可以运行在arm平台的so库,交叉编译使用命令如下:
    ./configure --prefix=/home/user/cross-compile/libiconv --host=arm-linux CC=arm-linux-gcc --enable-shared --enable-static

  2. 当前遇到的问题:

  3. 写了一个utf-8和gb2312编码格式的互相转换代码,在x86上可以正常运行,在arm下运行异常

x86:

img

arm:

img

代码:

img

img

img

  • 这篇博客: 嵌入式使用自带的iconv库utf-8转gbk失败,移植libiconv库解决中的 ARM嵌入式平台移植libiconv库 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 一、下载libiconv源码
    1、可以从官方网站上进行下载
    libiconv源码下载链接
    2、也可以从这里下载libiconv源码这个是我从官网上下载好的方便大家使用。
    二、交叉编译libiconv库
    1、首先把下载好的文件放到linux目录下即可,然后进行解压:tar -xvzf libiconv-1.16.tar.gz
    2、配置configure:
    ./configure --prefix=./out CC=arm-linux-gnueabihf-gcc -host=arm-linux -enable-shared -enable-static
    这里的交叉编译器是arm-linux-gnueabihf-gcc,需要替换成你自己使用的交叉编译器。
    3、配置完成之后就可以直接进行编译
    执行 make && make install
    或者执行
    make
    make install

    三、使用方法
    在源码目录下out目录下会生成几个文件夹
    编译生成的文件

    生成的库文件

    头文件
    把头文件和静态库文件或动态库文件拷贝到项目下进行加载和引用即可
    LIB += libiconv.a libcharset.a
    最好使用静态库文件,无需把库文件拷贝到ARM环境中,直接运行即可。