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/