由一开始的在线编译,到后面的离线编译,一路踩坑无数,历经整整6个半小时,终于编译成功!在此记录一下参考过的文章,有时间整理一下踩坑记录。
一、环境配置
在tensorflow官网上有版本对应关系
win10
bazel 3.1.0
msys2
tensorflow2.3.0
python3.5-3.8
MSVC2019
protobuf3.9.2 //protobuf的版本貌似非常重要,在tensorflow/tensorflow/workspace.bzl文件中可以查找到对应的版本
cuda10.1
cudnn7.6.5
VS2019 //编译过程中好像因为VS版本问题报过错,查找VS的MSVC版本,在报错文件中会有要求
二、编译前的准备工作,包括下载安装软件,配置环境变量,设置虚拟环境等
三、开始编译
bash
bazel build --config=opt --config=cuda //tensorflow:tensorflow_cc.dll --local_ram_resources=200 --local_cpu_resources=10
四、编译报错处理
C++ compilation of rule '//tensorflow/core/kernels:XXX' failed
在windows环境下离线编译tensorflow2.2.0的C++动态链接库
Windows10 Bazel 编译 Tensorflow 2 C++ dll 和 lib 文件
Windows编译Tensorflow2.2.0 C++ dll (CPU bazel)
五、在VS上测试
上面的步骤完成后, 在 G:\tensorflow_c++_2.3
(在你放源码的地方) 下的 bazel_bin
中会有相应的 include 文件夹 , tensorflow_cc.dll 和 tensorflow_cc.lib 文件, 把它们复制出来放到你的程序里就可以了.