本文亲测没有成功…
参考https://blog.csdn.net/seniusen/article/details/82972335
https://www.cnblogs.com/seniusen/p/9756481.html

安装tensorflow的c++接口需要从源码重新编译tensorflow,最重要的参考来自于官方文档。
https://blog.csdn.net/q199502092010/article/details/90289998

源码安装tf的时候,会用到Bazel,版本不对应,后面会引起好多麻烦。
https://www.cnblogs.com/carle-09/p/11675473.html

我的tensorflow_gpu版本为tensorflow_gpu-1.12.0
对应Bazel 0.15.0
安装这个对应是有问题的,要根据在tf文件夹下运行./configure报错提示选取

可以开始安装了

sudo dpkg -i bazel_0.17.2-linux-x86_64.deb
./bazel-0.24.0-installer-linux-x86_64.sh --bin=$HOME/bin --base=$HOME/.bazel

卸载

rm -rf ~/.bazel
rm -rf ~/bin
rm -rf /usr/bin/bazel

sudo dpkg -r bazel

最好是下载源码
下载地址

https://github.com/bazelbuild/bazel/releases?after=0.19.1
https://github.com/bazelbuild/bazel/releases/tag/0.24.0

关于tensorflow和protobuf的版本对应问题
https://www.cnblogs.com/walnuttree/p/11661190.html
tensorflow_gpu-1.12.0
对应protobuf 3.6
还有安装protobuf参考包中的readme.txt

cd protobuf
git submodule update --init --recursive
./autogen.sh
 ./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.

然后使用which protoc 和 protoc --version查看版本

bazel编译

./configure

如果版本不对bazel,会提示你现在用的什么版本,最少需要什么版本
一堆提示,一直按确定

bazel build --config=opt --verbose_failures --define framework_shared_object=false tensorflow:libtensorflow_cc.so

漫长的等待

报java的错

but server didn't support it and referenced by '//tensorflow/compiler/xla/service/llvm_ir:llvm_util'

查看java版本并切换

sudo update-alternatives --config java

或者安装


sudo cp jdk-8u181-linux-x64.tar.gz /usr/
cd /usr/
sudo tar -xzvf jdk-8u181-linux-x64.tar.gz
update-alternatives --install "/usr/bin/java" "java" "/usr/jdk1.8.0_181/bin/java" 0
java -version

还是报错误

no such package '@llvm//': java.io.IOException: Error downloading [https://mirror.bazel.build/github.com/llvm-mirror/llvm/archive/cd248aacbf298f8a909256d959ca5ca25c97aa4c.tar.gz

解决方法
就是要手动下载,然后让其在本地服务器下
https://blog.csdn.net/qq_39567427/article/details/104877041

更多推荐