【发布时间】:2021-01-26 00:04:46
【问题描述】:
我正在尝试交叉编译适用于 iOS 的 Tensorflow Lite(2.5,夜间构建)。我想建立一个静态框架。这是我使用的构建命令:
bazel build --config=ios_arm64 -c opt //tensorflow/lite/ios:TensorFlowLiteC_framework
TensorFlowLiteC_framework 目标在 tensorflow/tensorflow/lite/ios/BUILD.apple 中定义为
tflite_ios_static_framework(
name = "TensorFlowLiteC_framework",
hdrs = [
":c_api.h",
":common.h",
":xnnpack_delegate.h",
"//tensorflow/lite/c:c_api_types.h",
],
allowlist_symbols_file = ":allowlist_TensorFlowLiteC.txt",
bundle_name = "TensorFlowLiteC",
minimum_os_version = TFL_MINIMUM_OS_VERSION,
deps = [
":tensorflow_lite_c",
],
)
我原以为生成的框架是一个静态框架,但它似乎是一个动态框架。在TensorFlowLiteC.framework 文件夹内,有一个二进制文件TensorFlowLiteC。如果我这样做file TensorFlowLiteC,我会得到:
TensorFlowLiteC: Mach-O universal binary with 1 architecture: [arm64:Mach-O 64-bit object arm64]
TensorFlowLiteC (for architecture arm64): Mach-O 64-bit object arm64
对我来说,这似乎是一个动态库文件。据我所知,如果这是一个静态存档,我应该得到:current ar archive。
有没有办法将 Tensorflow Lite 真正构建到 iOS 的实际静态框架中?
【问题讨论】:
标签: ios xcode tensorflow2.0 static-libraries tensorflow-lite