主页 > 云计算, 网络知识, 运维知识 > tensorflow c++ 编译, 无需安装tensorflow。

tensorflow c++ 编译, 无需安装tensorflow。

2018年1月3日 发表评论 查看评论

c++使用tensorflow,如果通过自己编译安装整个tensorflow, 那么写完c++程序直接使用bazel构造工具就可以编译。
但在具体的项目应用中,为了方便,我们往往需要一个独立可融入目前系统的编译方法。而不是每次都要去bazel构建.
所以,下文演示代码如何直接使用编译好的tensorflow.so调用api。不需安装整个tensorflow
。里面的相关头文件是我从自己编译的tensorflow扒出来的。使用时直接同步git上面的代码下来,就可以自己写c++并调用tensorflow的api了。

链接:https://github.com/toniz/tensorflow-cpp-example
 

目前github上的版本是1.2.1,如果需要使用更新版本的tensorflow.so,找到新版本的相关文件夹和文件,替换即可。

编译需求

need GCC >=5.4.0
need GLIBC >= 2.23
该libtensorflow.so是在上面环境编译出来的。

编译

g++ -std=c++11 -Iinclude -Llib test.cpp -ltensorflow_cc -o exec
g++ -std=c++11 -Iinclude -Llib label_image.cc -ltensorflow_cc -o label_image

 

运行

 

GCC < 5.4.0 && GLIBC < 2.23

安装GCC

sudo yum install libmpc-devel mpfr-devel gmp-devel
sudo yum install zlib-devel*
curl ftp://ftp.gnu.org/pub/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2 -O
tar xvfj gcc-5.4.0.tar.bz2
cd gcc-5.4.0
./configure –with-system-zlib –disable-multilib –enable-languages=c,c++
make -j 8
sudo make install

安装GLIBC2.26

wget http://mirror.csclub.uwaterloo.ca/gnu/libc/glibc-2.26.tar.gz
tar -zxvf glibc-2.26.tar.gz
mkdir glibc-build
cd glibc-build
../glibc-2.26/configure –prefix=/usr/lib64/glibc-2.26
make -j 8
make install

将glibc安装到另外一个目录,避免安装错误导致系统挂掉。

编译

g++ -std=c++11 -Wl,-rpath='/usr/lib64/glibc-2.26/lib' -Wl,–dynamic-linker='/usr/lib64/glibc-2.26/lib/ld-linux-x86-64.so.2' -Iinclude -I'/usr/lib64/glibc-2.26/include' -Llib -L '/usr/lib64/glibc-2.26/lib' test.cpp -ltensorflow_cc -o exec
g++ -std=c++11 -Wl,-rpath='/usr/lib64/glibc-2.26/lib' -Wl,–dynamic-linker='/usr/lib64/glibc-2.26/lib/ld-linux-x86-64.so.2' -Iinclude -I'/usr/lib64/glibc-2.26/include' -Llib -L '/usr/lib64/glibc-2.26/lib' label_image.cc -ltensorflow_cc -o label_image

运行

export LD_LIBRARY_PATH=./lib:/usr/local/lib64/

https://github.com/toniz/tensorflow-cpp-example

原创文章,转载请注明: 转载自肚腩照明月'blog

本文链接地址: tensorflow c++ 编译, 无需安装tensorflow。

文章的脚注信息由WordPress的wp-posturl插件自动生成


  1. 本文目前尚无任何评论.

SEO Powered by Platinum SEO from Techblissonline