2.8 KiB
Build TensorFlow Lite for iOS
This document describes how to build TensorFlow Lite iOS library. If you just want to use it, the easiest way is using the TensorFlow Lite CocoaPod releases. See TensorFlow Lite iOS Demo for examples.
Building
To create a universal iOS library for TensorFlow Lite, you need to build it
using Xcode's command line tools on a MacOS machine. If you have not already,
you will need to install Xcode 8 or later and the tools using xcode-select
:
xcode-select --install
If this is a new install, you will need to run XCode once to agree to the license before continuing.
(You will also need to have Homebrew installed.)
Then install automake/libtool:
brew install automake
brew install libtool
If you get an error where either automake or libtool install but do not link correctly, you'll first need to:
sudo chown -R $(whoami) /usr/local/*
Then follow the instructions to perform the linking:
brew link automake
brew link libtool
Then you need to run a shell script to download the dependencies you need:
tensorflow/lite/tools/make/download_dependencies.sh
This will fetch copies of libraries and data from the web and install them in
tensorflow/lite/downloads
.
With all of the dependencies set up, you can now build the library for all five supported architectures on iOS:
tensorflow/lite/tools/make/build_ios_universal_lib.sh
Under the hood this uses a makefile in tensorflow/lite
to build the
different versions of the library, followed by a call to lipo
to bundle them
into a universal file containing armv7, armv7s, arm64, i386, and x86_64
architectures. The resulting library is in
tensorflow/lite/tools/make/gen/lib/libtensorflow-lite.a
.
If you get an error such as no such file or directory: 'x86_64'
when running
build_ios_universal_lib.sh
: open Xcode > Preferences > Locations, and ensure
a value is selected in the "Command Line Tools" dropdown.
Using in your own application
You'll need to update various settings in your app to link against TensorFlow
Lite. You can view them in the example project at
tensorflow/lite/examples/ios/simple/simple.xcodeproj
but here's a full
rundown:
-
You'll need to add the library at
tensorflow/lite/gen/lib/libtensorflow-lite.a
to your linking build stage, and in Search Paths addtensorflow/lite/gen/lib
to the Library Search Paths setting. -
The Header Search paths needs to contain:
- the root folder of tensorflow,
tensorflow/lite/downloads
tensorflow/lite/downloads/flatbuffers/include
-
C++11 support (or later) should be enabled by setting
C++ Language Dialect
toGNU++11
(orGNU++14
), andC++ Standard Library
tolibc++
.