我在macOS上尝试了TensorFlow C ++ API(https://www.tensorflow.org/api_guides/cc/guide)的示例。
我做的是:
编译成功但发生了以下错误。
dyld: Symbol not found: __ZN10tensorflow10DEVICE_CPUE
Referenced from: /private/var/tmp/_bazel_yuji/a8fcd93e6cfa4967cc9ea4c6e4cf2977/execroot/org_tensorflow/bazel-out/darwin_x86_64-py3-opt/bin/tensorflow/cc/example/example
Expected in: flat namespace
in /private/var/tmp/_bazel_yuji/a8fcd93e6cfa4967cc9ea4c6e4cf2977/execroot/org_tensorflow/bazel-out/darwin_x86_64-py3-opt/bin/tensorflow/cc/example/example
该示例不使用全局变量DEVICE_CPU,因此似乎是tensorflow库问题。
我该如何避免呢?
我在Ubuntu上尝试了同样的事情,并在编译的最后阶段遇到了很多链接器错误,例如,
错误:对< symbol name>
的未定义引用答案 0 :(得分:1)
我终于找到了解决方案。
指南中的以下构建可能不适合最新的张量流。
cc_binary(
name = "example",
srcs = ["example.cc"],
deps = [
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:tensorflow",
],
)
我根据BUILD in tensorflow / cc修改了它。
load(
"//tensorflow:tensorflow.bzl",
"tf_cc_binary",
)
tf_cc_binary(
name = "example",
srcs = ["example.cc"],
deps = [
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:tensorflow",
],
)
这就是全部。