最近需要做一个生成二维码的接口,移植qrencode到ARM板子上搞了两天,估计该遇到的问题都遇到了,移植过程也是蛮心酸的,下面用于记录一下成功的移植过程,话不多说
移植qrencode需要以下两个支持库zlib和libpng
1、交叉编译zlib
tar xvzf zlib-1.2.8.tar.gz
cd zlib-1.2.8
mkdir /home/hongxf/qrencode/csdn/zlib_arm
./configure --prefix=/home/hongxf/qrencode/csdn/zlib_arm
配置后打开Makefile修改 gcc为交叉工具链
make
make install
交叉编译完成 可以查看编译安装的文件 cd zlib_arm
2、交叉编译libpng
tar xzvf libpng-1.4.22.tar.gz
mkdir /home/hongxf/qrencode/csdn/libpng_arm
了解到libpng库是不需要configure的,因为在scripts目录下已经提供makefile,所以没有必要使用configure来创建makefle文件了。 因此把scripts目录下makefile.linux拷贝到源码包根目录中,直接make就可以。但是为了解决找不到zlib库这个问题,所以需要修改这个makefile。
cd libpng-1.4.22
cp scripts/makefile.linux makefile
vi makefile
修改交叉编译工具链路径、安装路径和zlib相关的库和头文件路径
make
make install
编译成功
3、交叉编译qrencode
mkdir /home/hongxf/qrencode/csdn/qrencode_arm
tar xzvf qrencode-3.4.4.tar.gz
cd qrencode-3.4.4
export png_CFLAGS="-I/home/hongxf/qrencode/csdn/libpng_arm/include/libpng14 -I/home/hongxf/qrencode/csdn/libpng_arm/include -I /home/hongxf/qrencode/csdn/zlib_arm/include"
export png_LIBS="-L/home/hongxf/qrencode/csdn/libpng_arm/lib -lpng14 -L/home/hongxf/qrencode/csdn/zlib_arm/lib -lz -lm"
不要编译动态库,只编译静态库,这个问题真的搞了我好久
./configure --enable-static --disable-shared --prefix=/home/hongxf/qrencode/csdn/qrencode_arm
vi Makefile 修改Makefile
make
make install
完成