编译库注意一下几方面:
(1)./configure --help 命令查看编译的库所依赖的库,里面--without-pango表示默认将pang编译进去,通过--without-可以不用编译进去。
(2)./configure --prefix=指定生成文件路径 CFLAGS=-I指定库文件的头文件路径 LDFLAGS=-L指定库文件路径 --host=arm-linux指定编译器 --without-ssl(不需要编译ssl库)。
(3)库编译好之后查看编译好的so文件是ARM类型还是X86类型。
(4)编译过程中如果出现缺少相关库,查看该库是否在LDFLAGS中。
1、iptables-1.4.21
./configure --prefix=/home/zhc123/project/tools/iptables-1.4.21_N972/iptables972_install --disable-ipv6 --enable-devel --host=arm-linux CC=arm-linux-gcc
make&&make install
备注:静态编译,相应的库都已经编译到可执行文件中,只需要将sbin目录下的可执行文件放在开发板的sbin目录下即可
2、wget-1.14.tar.gz
./configure --prefix=/home/zhc123/project/tools/back/wget-1.14/install CC=/home/zhc123/project/NUC970/linuxbsp/BSP/arm_linux_4.8/bin/arm-linux-gcc CFLAGS=-I/home/zhc123/project/tools/zlib-1.2.7/ LDFLAGS=-L/home/zhc123/project/tools/zlib-1.2.7 --host=arm-linux --without-ssl
备注:需要添加 libiconv.so.2 libintl.so.8
3、编译HarfBuzz
./configure --prefix=$PWD/_install --host=arm-linux --with-gobject --with-graphite2
make
make install
4、编译freetype
tar xvf freetype-2.6.5.tar.gz
export LDFLAGS="-L/home/zhc123/project/tools/build_for_zbar/zlib-1.2.11_n972/zlib_build/lib -L/home/zhc123/project/tools/build_for_zbar/libpng-1.6.32/_install/lib"
export CFLAGS="-I/home/zhc123/project/tools/build_for_zbar/zlib-1.2.11_n972/zlib_build/include -I/home/zhc123/project/tools/build_for_zbar/libpng-1.6.32/_install/include"
export CC=arm-linux-gcc
mkdir build
cd build
../configure --prefix=$PWD/__install --host=arm-linux
make && make install
5、编译graphviz-2.40.1
export CC=arm-linux-gcc
export AR=arm-linux-ar
./configure --prefix=$PWD/__install --host=arm-linux
6、编译ImageMagick.git
(1)获取源码 git clone https://github.com/ImageMagick/ImageMagick.git
(2)指定库和头文件的路径,这里就是为了保证在交叉编译时找到正确的库! export LDFLAGS="-L/home/zhc123/project/tools/build_for_zbar/freetype-2.6.5/__install/lib -L/home/zhc123/project/tools/build_for_zbar/libpng-1.6.32/_install/lib -L/home/zhc123/project/tools/build_for_zbar/jpeg-9b/build/_install/lib -L/home/zhc123/project/tools/build_for_zbar/zlib-1.2.11_n972/zlib_build/lib -L/home/zhc123/project/tools/build_for_zbar/graphviz-2.40.1/__install/lib"
export CFLAGS="-I/home/zhc123/project/tools/build_for_zbar/freetype-2.6.5/__install/include -I/home/zhc123/project/tools/build_for_zbar/freetype-2.6.5/__install/include/freetype2 -I/home/zhc123/project/tools/build_for_zbar/libpng-1.6.32/_install/include -I/home/zhc123/project/tools/build_for_zbar/jpeg-9b/build/_install/include -I/home/zhc123/project/tools/build_for_zbar/zlib-1.2.11_n972/zlib_build/include -I/home/zhc123/project/tools/build_for_zbar/graphviz-2.40.1/__install/include/graphviz"
cd ImageMagick
mkdir build
cd build
../configure --prefix=$PWD/__install --disable-installed --without-perl --without-fontconfig --without-pango --without-x --without-fpx --without-xml --without-tiff --without-wmf --disable-openmp --host=arm-linux
修改Makefile里面的CFLAGS,将x86平台的目录去掉(含有usr/include)
CFLAGS = -I/home/zhc123/project/tools/build_for_zbar/freetype-2.6.5/__install/include -I/home/zhc123/project/tools/build_for_zbar/freetype-2.6.5/__install/include/freetype2 -I/home/zhc123/project/tools/build_for_zbar/libpng-1.6.32/_install/include -I/home/zhc123/project/tools/build_for_zbar/jpeg-9b/build/_install/include -I/home/zhc123/project/tools/build_for_zbar/zlib-1.2.11_n972/zlib_build/include -I/home/zhc123/project/tools/build_for_zbar/graphviz-2.40.1/__install/include/graphviz -Wall -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
make && make install
7、编译zbar
export LDFLAGS="-L/home/zhc123/project/tools/build_for_zbar/ImageMagick/build/__install/lib"
export CFLAGS=" -I/home/zhc123/project/tools/build_for_zbar/ImageMagick/build/__install/include"
./configure --prefix=$PWD/output/ --without-gtk --without-qt --disable-video --without-imagemagick --without-python --enable-static --host=arm-linux
make&&make install