通过交叉编译得到可以运行在arm平台的so库,交叉编译使用命令如下:
./configure --prefix=/home/user/cross-compile/libiconv --host=arm-linux CC=arm-linux-gcc --enable-shared --enable-static
当前遇到的问题:
写了一个utf-8和gb2312编码格式的互相转换代码,在x86上可以正常运行,在arm下运行异常
x86:
arm:
代码:
一、下载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环境中,直接运行即可。