安装参考:
https://blog.youkuaiyun.com/gubenpeiyuan/article/details/80855644
1.安装bazel
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install bazel
2.tensorflow的下载。
本博文使用的tensorflow版本为1.4,其他版本的c++编译可能会有一些不一样。
git clone https://github.com/tensorflow/tensorflow.git
3.tensorflow的c++编译。
3.1 进入tensorflow文件夹中,首先进行项目配置。
./configure
下面我贴出在我的机器上各选项的选择:值得注意的是,如果我们要使用cuda和cudnn的话,一定要搞清楚自己机器上使用的cuda和cudnn的版本(尤其是cudnn),例如我使用的是cuda8.0和cudnn6.0.21。
3.2 使用bazel命令进行编译。编译的时间比较长,我在i3-4150cpu上编译了一个小时左右的时间。
bazel build --config=opt --config=cuda //tensorflow:libtensorflow_cc.so
如果没有显卡则使用如下命令进行编译
bazel build --config=opt //tensorflow:libtensorflow_cc.so
编译完成后,在bazel-bin/tensorflow中会生成两个我们需要的库文件:libtensorflow_cc.so 和 libtensorflow_framework.so。
在后面我们用C++调用tensorflow时需要链接这两个库文件。
编译其他依赖:
参考:https://www.cnblogs.com/seniusen/p/9756302.html
-
进入 tensorflow/contrib/makefile 目录下,运行
./build_all_linux.sh
,成功后会出现一个gen文件夹 -
若出现如下错误 /autogen.sh: 4: autoreconf: not found ,安装相应依赖即可
sudo apt-get install autoconf automake libtool
配置参考:
https://blog.youkuaiyun.com/fly_time2012/article/details/80847601
-
mkdir /usr/local/include/tf
-
cp -r bazel-genfiles/ /usr/local/include/tf/
-
cp -r tensorflow /usr/local/include/tf/
-
cp -r third_party /usr/local/include/tf/
-
cp -r bazel-bin/tensorflow/libtensorflow_cc.so /usr/local/lib/
2 3 4 5 6 7 | sudo mkdir -p /usr/local/include/tf/tensorflow sudo cp -r bazel-genfiles/ /usr/local/include/tf sudo cp -r tensorflow/cc /usr/local/include/tf/tensorflow sudo cp -r tensorflow/core /usr/local/include/tf/tensorflow sudo cp -r third_party /usr/local/include/tf sudo cp bazel-bin/tensorflow/libtensorflow_cc.so /usr/local/lib sudo cp bazel-bin/tensorflow/libtensorflow_framework.so /usr/local/lib |
https://blog.youkuaiyun.com/carbon06/article/details/82632781
cmake 使用参考: