M1 Mac 上 Tensorflow C api 的即时运行时错误

时间:2021-01-29 11:41:44

标签: c++ c tensorflow tensorflow2.0 tensorflow-c++

我正在尝试在 xcode 项目中使用 Tensorflow C api。一旦应用程序开始运行,主线程上就会生成 BAD_INSTRUCTION 错误。这个错误来自:

<块引用>

tensorflow::monitoring::MetricDef<(tensorflow::monitoring::MetricKind)1, long long, 2>::MetricDef(absl::lts_2020_02_25::string_view, absl::lts_2020_02_25::string_view, char const (&) [11], char const (&) [7]) ()

我使用以下方法安装了 api:https://www.tensorflow.org/install/lang_c

我正在为 x86_64 架构构建(使用 Rosetta 进行翻译),并通过指定一个运行路径搜索路径到 .dylib 的目录来链接库。我还将此路径包含为常规搜索路径,并添加了标题搜索路径。最后,我将两个 .dylibs 添加到“链接二进制库”列表中。

我在 M1 macbook pro 上运行 xcode 12.4。如果有人知道从 xcode 中获取有关崩溃的更多信息的任何方法,那也会很有用。

我尝试在英特尔 MacBook 上安装,效果很好。

1 个答案:

答案 0 :(得分:0)

M1 处理器是 ARM。

您为 x86_64(英特尔架构)编译,这意味着它不兼容。

您必须为 ARM 编译它,否则它将无法运行。 (这就像尝试在 .NET 中运行 JVM 字节码,它只是行不通)

有关详细信息,see this answer