c++ - 在 Windows 上构建 tensorflow C++ 共享库时出错
问题描述
我正在尝试将 tensorflow 构建为独立项目,并且一直在关注本教程
但或者有 cpu 支持
我的环境设置版本
protobuf 3.6.1
tensorflow 1.10.0
tf.GIT_VERSION = b'v1.10.0-rc1-19-g656e7a2b34'
这是我用来生成共享库的步骤
由于我不使用python绑定,所以安装了依赖项,不需要SWIG,所以我安装了Git(版本2.15.1.windows.2)和cmake 3.11.1
我使用了 Visual Studio 2015 中的 64 位工具,因为 VS2015 是构建 DLL 所必需的。我应该能够打开“VS2015 x64 Native Tools 命令提示符”。这是必需的,因此 VS 使用 64 位工具集。
在命令行中导航到源代码的“tensorflow/contrib/cmake”子文件夹,并使用“mkdir build”创建一个目录。然后使用“cd build”导航到新的构建文件夹。
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
直到现在一切都很顺利。为了构建 tensorflow.dll,我发出了以下命令:MSBuild /p:Configuration=RelWithDebInfo tensorflow.vcxproj
这会引发错误: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]。
我用这个修复了上述错误:https ://github.com/tensorflow/tensorflow/issues/22007#issuecomment-424553600 。
执行上述操作后我得到了这个错误: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 中引用
我无法继续进行。有什么解决方法吗?谢谢!
解决方案
当您在源代码中直接使用的链接未正确链接时,会发生 lnk2019 错误。请向您的项目添加其他依赖项。
- 前往项目物业
- 选择 C/C++ 选项
- 添加其他依赖项
- 转到 C/C++ 下面的链接器选项
- 在此处添加其他依赖项。
这可能对您解决 LNK2019 问题很有帮助
推荐阅读
- emu8086 - 不使用算术指令将两个 16 位数字相乘
- python - 如何在 Flask-SQLAlchemy 中查询两个关联表?
- vue.js - 如何在表格内创建下拉列表?
- reactjs - 部署后用户可以看到 REDUX 商店吗?
- java - 在春季将枚举加入对象
- javascript - React 中的内联函数导致重新渲染?
- python-3.x - 如何在ffmpeg中操作音量
- flutter - 使用 uni_links 0.4.0 无法重定向要求页面颤动
- flutter - 放置多个标记 - Google Maps API - Flutter/Dart
- java - Windows ServerCore 容器中缺少性能计数器注册表项(Azure 应用程序洞察 jar)