交叉编译libbz2,zlib

在linux平台,使用arm交叉编译链编译libbz2,zlib

起因,在arm平台下使用boost库.
修改Makefile文件
SHELL=/bin/bash

# To assist in cross-compiling
CC=/home/frp/code/third_libs/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
AR=/home/frp/code/third_libs/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar
RANLIB=/home/frp/code/third_libs/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ranlib
LDFLAGS=

BIGFILES=-D_FILE_OFFSET_BITS=64
CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)

# Where you want it installed when you do 'make install'
PREFIX=/home/frp/code/third_libs/bzip2-1.0.6/install


OBJS= blocksort.o  \
      huffman.o    \
      crctable.o   \
      randtable.o  \
      compress.o   \
      decompress.o \
      bzlib.o

all: libbz2.a bzip2 bzip2recover

bzip2: libbz2.a bzip2.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2

bzip2recover: bzip2recover.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o

使用bzip2-1.0.6版本,上面的代码为Makefile文件中的部分(修改后的).

  • 修改了SHELL=后的sh为bash,不修改的话会报如下错误:

Doing 6 tests (3 compress, 3 uncompress) …
If there’s a problem, things might stop at this point.
./bzip2 -1 < sample1.ref > sample1.rb2
./bzip2: 1: ./bzip2: Syntax error: word unexpected (expecting “)”)
Makefile:57: recipe for target ‘test’ failed
make: *** [test] Error 2

  • 修改CC=,AR=,RANLIB=为实际的交叉编译链中gcc,ar,ranlib的路径
  • 修改PREFIX=为要安装位置,如果默认的话可能会覆盖系统的这些库(没试过)
  • 去掉all后面的test,测试老是不通过,猜想可能是于实际平台不符导致的
编译
make
make install

ZLIB

进入zlib源码所在文件夹

export CC=/home/frp/code/third_libs/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
mkdir install
./configure --prefix=$PWD/install
make && make install

你可能感兴趣的:(杂项)