Tensorflow源码编译分两种:一种是本地源码编译,另外一种是针对ARM平台的源码编译.python
接下来分别介绍:linux
一.本地编译python2.7
本地编译时,使用的编译工具是本地GCC.工具
通常会碰到如下问题:google
第1个:external/nasm/include/error.h 找不到ssl
解决方法:源码
执行命令:sudo cp external/nasm/include/error.h external/nasm/openssl
二.ARM交叉编译it
第一步:配置环境:io
./configure
配置python环境为:/usr/bin/python2.7
编译时,常见问题:
第1个:/home/jim/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/include-fixed/openssl/bn.h:fatal error: openssl/e_os2.h: No such file or directory
修改目录:/home/jim/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/include-fixed/openssl 为openssl_old
/home/jim/sysroots/x86_64-pokysdk-linux/cortexa9hf-neon-poky-linux-gnueabi/usr/include/openssl 为openssl_old
第2个:int_max_32 :redifinition in in /usr/include/google/protobuf/
修改目录:/usr/include/google/protobuf 为protobuf_old
第3个:/usr/include/python2.7/pyconfig.h:24:54: fatal error: arm-linux-gnueabihf/python2.7/pyconfig.h: No such file or directory
打开文件:/usr/include/python2.7/pyconfig.h, 去掉前缀:arm-linux-gnueabihf/