我正在尝试将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
< / li>我使用Visual Studio 2015中的64位工具,因为VS2015是构建DLL所必需的。我应该能够打开“ VS2015 x64本机工具命令提示符”。这是必需的,因此VS使用64位工具集。
在命令行中导航至源代码的“ tensorflow / contrib / cmake”子文件夹,并使用“ mkdir build”创建目录。然后使用“ cd build”导航到新的build文件夹。
创建构建解决方案:cmake的.. -A 64 -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 = /拱:AVX -Dtensorflow_BUILD_SHARED_LIB = ON
一切都进行到此为止。为了构建tensorflow.dll,我发出了以下命令:MSBuild / p:Configuration = RelWithDebInfo tensorflow.vcxproj
这将引发错误: D:\ work \ tensorflow \ tensorflow / core / lib / core / stringpiece.h(34):致命错误C1083:无法打开包含文件:'absl / strings / string_view.h':没有这样的文件或目录( 编译源文件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:错误LNK2019:未解析的外部符号“ void __cdecl absl :: base_internal :: ThrowStdOutOfRange(char const *)”(?ThrowStdOutOfRange @ base_internal @ absl @@ YA XPEBD @ Z)在函数“类std :: basic_string,类std :: allocator> __cdecl tensorflow :: io :: internal :: JoinPathIm
我无法继续进行。任何解决方法?谢谢!
答案 0 :(得分:0)
lnk2019错误。请向您的项目中添加其他依赖项。
解决LNK2019问题可能对您有帮助
答案 1 :(得分:0)
我遇到了同样的问题,我认为tensorflow新版本不支持CMake,但是我们可以解决问题。 1.似乎项目文件夹中的absl版本已过期,因此我从以下位置克隆了abseil-cpp的最新版本:https://github.com/abseil/abseil-cpp 2.使用cmake构建abseil-cpp,它将很快。 3.将lib路径添加到tensorflow依赖项,所需的路径将是D:\ git \ abseil-cpp \ abseil-cpp \ build \ absl \ base \ Release \ absl_absl_throw_delegate.lib 4.如果遇到其他链接错误,则可以在absl源代码中找到函数名称,并找到包含它的库。 希望这对您和将来可能遇到此问题的人有所帮助。