python及第三方库交叉编译( 二 )


8、编辑链接文件:vim /etc/ld.so.conf.d/libc.conf
9、在libc.conf文件中添加:/usr/openssl-1.0.2g-build/openssl-build/lib
10、重新加载配置:ldconfig
11、测试:openssl version,已经变成1.0.2g版本了

python及第三方库交叉编译

文章插图
八、准备openssl-target1、同样是再次解压openssl源码包 , 这次解压的源码包用来交叉编译给target-python使用的:tar -xzvf openssl-1.0.2g.tar.gz
2、更改名字:mv openssl-1.0.2g openssl-1.0.2g-target
3、cd openssl-1.0.2g-target
4、设置编译环境:./config no-asm --shared --cross-compile-prefix=arm-buildroot-linux-gnueabihf- --prefix=/home/openssl-1.0.2g-target/openssl-target
解释: no-asm :加上 no-asm 表示不使用汇编代码加速编译,不然会报错
--cross-compile: 指定交叉编译链的前缀,这样在交叉编译openssl就会使用我们的交叉编译链进行交叉编译了
  --prefix: 已经是交叉编译后的路径
5、在编译后生成的Makefile中有两处是 -m64 的标记要删除 , 因为交叉编译后是在32位的板子上运行 , 所以这一步也要改:sed -i 's/-m64//' Makefile
6、执行编译安装:make && make install
目前我们就把openssl-build和openssl-target都准备好了
九、准备zlib-build1、解压源码包:unzip zlib1211.zip
2、改名:mv zlib-1.2.11 zlib-1.2.11-build
3、cd zlib-1.2.11-build
4、设置编译环境:./configure --prefix=/home/zlib-1.2.11-build/zlib-build
5、执行编译安装:make && make install
十、准备zlib-target1、解压源码包:unzip zlib1211.zip
2、改名:mv zlib-1.2.11 zlib-1.2.11-target
3、cd zlib-1.2.11-target
4、设置交叉编译器:export CC=arm-buildroot-linux-gnueabihf-gcc 通过export 设置的环境变量都是临时一次性的,当shell窗口关闭了就失效了
5、设置编译环境:./configure --prefix=/home/zlib-1.2.11-target/zlib-target --enable-shared
6、执行编译安装:make && make install
目前我们也已经包zlib-build和zlib-target准备好了
十一、准备ctypes-build 这一步已经在准备工作中做了:sudo apt-get install libffi-dev
十二、准备ctypes-target1、解压源码包:tar -xzvf libffi-3.2.1.tar.gz
2、改名:mv libffi-3.2.1 libffi-3.2.1-target
3、cd libffi-3.2.1-target
4、设置交叉编译器:export CC=arm-buildroot-linux-gnueabihf-gcc 如果这一步在准备zlib-target没有关闭shell窗口的时候,可以不用设置,因为已经设置过了,但是如果关了窗口就要重新设置了
5、设置编译环境:./configure CC=arm-buildroot-linux-gnueabihf-gcc --host=arm-buildroot-linux-gnueabihf --build=x86_64-linux-gnu target=arm-buildroot-linux-gnueabihf --enable-shared --prefix=/home/libffi-3.2.1-target/libffi-target
6、执行编译安装:make && make install
【python及第三方库交叉编译】目前ctypes-build和ctypes-target也准备好了
十三、编译python-build1、解压源码:tar xvf Python-3.5.2.tgz
2、改名:mv Python-3.5.2 python-3.5.2-build
3、cd /home/python-3.5.2-build
4、修改 Modules/Setup.dist文件:vim Modules/Setup.dist
a、修改关于openssl部分
python及第三方库交叉编译

文章插图
b、修改关于zlib部分
python及第三方库交叉编译

文章插图
5、将之前设置的交叉编译器改为默认的编译器:export CC=   这里=后面什么都不赋值就表示设置为空 , 这样就会去找默认的gcc了
6、设置编译环境,./configure --prefix=/home/python-build --without-ensurepip
--without-ensurepip:不安装pip,因为默认安装的pip版本太低了,所以一会我们自己安装pip
7、执行安装编译:make && make install
8、cd /home/python-build/bin
9、下载pip文件:curl https://bootstrap.pypa.io/pip/3.5/get-pip.py -o get-pip.py -k
10、安装pip: ./python3 get-pip.py
11、将该python-build添加到环境变量,设置为build主机上默认的python:  export PATH=/home/python-build/bin:$PATH
12、安装Cython: pip3 install Cython
13、测试:python3
python及第三方库交叉编译

文章插图
十四:编译python-targer1、解压源码包:tar xvf Python-3.5.2.tgz
2、改名:mv Python-3.5.2 python-3.5.2-target
3、cd python-3.5.2-target
4、创建文件夹:mkdir /home/python-target
5、将之前准备的openssl-targer、zlib-targer、cytpes-targer的头文件和链接库复制到/home/python-targer
cp -rfp /home/zlib-1.2.11-target/zlib-target/* /home/python-target/

推荐阅读