ubuntu18.04 zlib-1.2.11交叉编译

1 代码下载

代码下载地址:

https://www.zlib.net/zlib-1.2.11.tar.gz

解压:

tar xvzf zlib-1.2.11.tar.gz
cd zlib-1.2.11

2 配置makefile

–prefix指明install路径,交叉编译一般安装在toolchain目录,下次编译其他的lib就可以直接使用了。

./configure --prefix=/usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi

配置完成后还需修改一下,将编译器更换arm-linux-gcc,我使用的是4.4.3的版本。


# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
#    make install
# To install in $HOME instead of /usr/local, use:
#    make install prefix=$HOME

CC=arm-none-linux-gnueabi-gcc

CFLAGS=-O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-g -DZLIB_DEBUG
#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
#           -Wstrict-prototypes -Wmissing-prototypes

SFLAGS=-O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN
LDFLAGS=
TEST_LDFLAGS=-L. libz.a
LDSHARED=arm-none-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=arm-none-linux-gnueabi-gcc -E

STATICLIB=libz.a
SHAREDLIB=libz.so
SHAREDLIBV=libz.so.1.2.11
SHAREDLIBM=libz.so.1
LIBS=$(STATICLIB) $(SHAREDLIBV)

AR=arm-none-linux-gnueabi-ar
ARFLAGS=rc
RANLIB=arm-none-linux-gnueabi-ranlib
LDCONFIG=ldconfig
LDSHAREDLIBC=-lc
TAR=tar
SHELL=/bin/sh
EXE=

prefix =/usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi
exec_prefix =${prefix}
libdir =${exec_prefix}/lib
sharedlibdir =${libdir}
includedir =${prefix}/include
mandir =${prefix}/share/man
man3dir = ${mandir}/man3
pkgconfigdir = ${libdir}/pkgconfig
SRCDIR=
ZINC=
ZINCOUT=-I.

尤其是LDSHARED,gcc一定要替换成arm-none-linux-gnueabi-gcc ,否则会有如下错误。

/usr/bin/ld: adler32.lo: Relocations in generic ELF (EM: 40)
adler32.lo: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
Makefile:282: recipe for target 'libz.so.1.2.11' failed

3 编译

make
make insatll
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值