首页 > 解决方案 > 在 Windows 上构建 tensorflow C++ 共享库时出错

问题描述

我正在尝试将 tensorflow 构建为独立项目,并且一直在关注本教程

http://www.stefanseibert.com/2017/10/tensorflow-as-dll-into-your-windows-c-project-with-gpu-support-and-cmake-v1-3/

但或者有 cpu 支持

我的环境设置版本

protobuf 3.6.1
tensorflow 1.10.0
tf.GIT_VERSION = b'v1.10.0-rc1-19-g656e7a2b34'

这是我用来生成共享库的步骤

  1. 从https://github.com/tensorflow/tensorflow.git获取源代码

  2. 由于我不使用python绑定,所以安装了依赖项,不需要SWIG,所以我安装了Git(版本2.15.1.windows.2)和cmake 3.11.1

  3. 我使用了 Visual Studio 2015 中的 64 位工具,因为 VS2015 是构建 DLL 所必需的。我应该能够打开“VS2015 x64 Native Tools 命令提示符”。这是必需的,因此 VS 使用 64 位工具集。

  4. 在命令行中导航到源代码的“tensorflow/contrib/cmake”子文件夹,并使用“mkdir build”创建一个目录。然后使用“cd build”导航到新的构建文件夹。

  5. Create a build solution: cmake .. -A x64 -DCMAKE_BUILD_TYPE=RelWithDebInfo -Dtensorflow_BUILD_CC_EXAMPLE=OFF -Dtensorflow_ENABLE_GRPC_SUPPORT=OFF -Dtensorflow_BUILD_CC_TESTS=OFF -Dtensorflow_BUILD_PYTHON_TESTS=OFF -Dtensorflow_ENABLE_GPU=OFF -Dtensorflow_WIN_CPU_SIMD_OPTIONS=/arch:AVX -Dtensorflow_BUILD_SHARED_LIB=ON

  6. 直到现在一切都很顺利。为了构建 tensorflow.dll,我发出了以下命令:MSBuild /p:Configuration=RelWithDebInfo tensorflow.vcxproj

  7. 这会引发错误:D:\work\tensorflow\tensorflow/core/lib/core/stringpiece.h(34): fatal error C1083: Cannot open include file: 'absl/strings/string_view.h': No such file or目录(编译源文件 D:\work\tensorflow\tensorflow\core\lib\core\coding.cc)[D:\work\tensorflow\tensorflow\contrib\cmake\build\tf_core_lib.vcxproj]

  8. 我用这个修复了上述错误:https ://github.com/tensorflow/tensorflow/issues/22007#issuecomment-424553600 。

  9. 执行上述操作后我得到了这个错误:path.obj : error LNK2019: unresolved external symbol "void __cdecl absl::base_internal::ThrowStdOutOfRange(char const *)" (?ThrowStdOutOfRange@base_internal@absl@@YA XPEBD@Z)在函数“class std::basic_string,class std::allocator > __cdecl tensorflow::io::internal::JoinPathIm 中引用

我无法继续进行。有什么解决方法吗?谢谢!

标签: c++tensorflowcmake

解决方案


当您在源代码中直接使用的链接未正确链接时,会发生 lnk2019 错误。请向您的项目添加其他依赖项。

  • 前往项目物业
  • 选择 C/C++ 选项
  • 添加其他依赖项
  • 转到 C/C++ 下面的链接器选项
  • 在此处添加其他依赖项。

这可能对您解决 LNK2019 问题很有帮助

查看此内容以了解 LNK2019 错误。


推荐阅读