1、安装zlib源码包
下载zlib源码包
http://www.zlib.net/
tar -zxf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
# 使用你自己的编译环境
CC=arm-hisiv400-linux-gcc
AR=arm-hisiv400-linux-ar
RANLIB=arm-hisiv400-linux-ranlib
# 安装至你的交编译器所在的环境目录
./configure --prefix=/opt/hisi-linux/x86-arm/arm-hisiv400-linux/arm-hisiv400-linux-gnueabi --shared
make;
make install;
make install --prefix=/opt/zlib
2、安装sqlite3
安装sqlite3
wget https://www.sqlite.org/2018/sqlite-autoconf-3250200.tar.gz
tar -zxvf sqlite-autoconf-3250200.tar.gz
cd sqlite-autoconf-3250200
./configure CC=arm-hisiv400-linux-gcc AR=arm-hisiv400-linux-ar RANLIB=arm-hisiv400-linux-ranlib LDFLAGS=-lrt READELF=arm-hisiv400-linux-readeif CPP=arm-hisiv400-linux-cpp --host=arm-hisiv400-linux-gnueabi --build=x86_64-linux-gnu --prefix=/opt/sqlite3
make;make install;
3、安装python3
安装python3
修改setup.py文件以支持sqlite3
# 第1138行 修改为
1137 if cross_compiling:
1138 sqlite_inc_paths = ['/opt/sqlite3/include']
修改Modules/Setup文件以支持zlib
# 365行修改为
365 zlib zlibmodule.c -I/opt/zlib/include -L/opt/zlib/lib -lz
但是用修改Modules/Setup文件方式构建的zlib仅是 build-in 方式
在python3/lib/python3.6/lib-dynload 中并没有生成对应的.so文件
因此虽然在python shell中可以正常导入zlib
但是使用uwsgi运行应用时仍会出现找不到zlib
因此需要更换构建方式
通过阅读setup.py
1402
1403 # Andrew Kuchling's zlib module. Note that some versions of zlib
1404 # 1.1.3 have security problems. See CERT Advisory CA-2002-07:
1405 # http://www.cert.org/advisories/CA-2002-07.html
1406 #
1407 # zlib 1.1.4 is fixed, but at least one vendor (RedHat) has decided to
1408 #