Install TensorFlow for C

View on TensorFlow.org Run in Google Colab View source on GitHub Download notebook

TensorFlow provides a C API that can be used to build bindings for other languages. The API is defined in c_api.h and designed for simplicity and uniformity rather than convenience.

Nightly libtensorflow C packages

libtensorflow packages are built nightly and uploaded to GCS for all supported platforms. They are uploaded to the libtensorflow-nightly GCS bucket and are indexed by operating system and date built. For MacOS and Linux shared objects, there is a script that renames the .so files versioned to the current date copied into the directory with the artifacts.

Supported Platforms

TensorFlow for C is supported on the following systems:

  • Linux, 64-bit, x86
  • macOS, Version 10.12.6 (Sierra) or higher
  • Windows, 64-bit x86

Setup

Download and extract

TensorFlow C libraryURL
Linux
Linux CPU only https://storage.googleapis.com/tensorflow/versions/2.18.0/libtensorflow-cpu-linux-x86_64.tar.gz
Linux GPU support https://storage.googleapis.com/tensorflow/versions/2.18.0/libtensorflow-gpu-linux-x86_64.tar.gz
macOS
macOS CPU only https://storage.googleapis.com/tensorflow/versions/2.16.2/libtensorflow-cpu-darwin-x86_64.tar.gz
macOS ARM64 CPU only https://storage.googleapis.com/tensorflow/versions/2.18.0/libtensorflow-cpu-darwin-arm64.tar.gz
Windows
Windows CPU only https://storage.googleapis.com/tensorflow/versions/2.18.1/libtensorflow-cpu-windows-x86_64.zip
Windows GPU only https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-windows-x86_64-2.10.0.zip

Extract the downloaded archive, which contains the header files to include in your C program and the shared libraries to link against.

On Linux and macOS, you may want to extract to /usr/local/lib:

FILENAME=libtensorflow-cpu-linux-x86_64.tar.gz
wget-q--no-check-certificatehttps://storage.googleapis.com/tensorflow/versions/2.18.1/${FILENAME}
sudotar-C/usr/local-xzf${FILENAME}

Linker

On Linux/macOS, if you extract the TensorFlow C library to a system directory, such as /usr/local, configure the linker with ldconfig:

sudoldconfig/usr/local/lib

If you extract the TensorFlow C library to a non-system directory, such as ~/mydir, then configure the linker environmental variables:

Linux

exportLIBRARY_PATH=$LIBRARY_PATH:~/mydir/lib
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/mydir/lib

macOS

exportLIBRARY_PATH=$LIBRARY_PATH:~/mydir/lib
exportDYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:~/mydir/lib

Build

Example program

With the TensorFlow C library installed, create an example program with the following source code (hello_tf.c):

%%writefile hello_tf.c
#include <stdio.h>
#include <tensorflow/c/c_api.h>
int main() {
 printf("Hello from TensorFlow C library version %s\n", TF_Version());
 return 0;
}
Writing hello_tf.c

Compile

Compile the example program to create an executable, then run:

gcchello_tf.c-ltensorflow-ohello_tf

./hello_tf
Hello from TensorFlow C library version 2.18.1

If the program doesn't build, make sure that gcc can access the TensorFlow C library. If extracted to /usr/local, explicitly pass the library location to the compiler:

gcc-I/usr/local/include-L/usr/local/libhello_tf.c-ltensorflow-ohello_tf

./hello_tf
Hello from TensorFlow C library version 2.18.1

Build from source

TensorFlow is open source. Read the instructions to build TensorFlow's C library from source code.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年10月13日 UTC.