Using Arrow C++ in your own project

This section assumes you already have the Arrow C++ libraries on your system, either after installing them using a package manager or after building them yourself.

The recommended way to integrate the Arrow C++ libraries in your own C++ project is to use CMake’s find_package function for locating and integrating dependencies.

Basic usage

This minimal CMakeLists.txt file compiles a my_example.cc source file into an executable linked with the Arrow C++ shared library:

project(MyExample)

find_package(Arrow REQUIRED)

add_executable(my_example my_example.cc)
target_link_libraries(my_example PRIVATE arrow_shared)

Available variables and targets

The directive find_package(Arrow REQUIRED) asks CMake to find an Arrow C++ installation on your system. When it returns, it will have set a few CMake variables:

  • ${Arrow_FOUND} is true if the Arrow C++ libraries have been found

  • ${ARROW_VERSION} contains the Arrow version string

  • ${ARROW_FULL_SO_VERSION} contains the Arrow DLL version string

In addition, it will have created some targets that you can link against (note these are plain strings, not variables):

  • arrow_shared links to the Arrow shared libraries

  • arrow_static links to the Arrow static libraries

In most cases, it is recommended to use the Arrow shared libraries.

Note

CMake is case-sensitive. The names and variables listed above have to be spelt exactly that way!

See also

A Docker-based minimal build example.