Building from Source
Last updated
Was this helpful?
Last updated
Was this helpful?
TileDB has been tested on Ubuntu Linux (v.20.04+), CentOS Linux (v.7+, with updated devtoolset compiler), macOS (v.11) and Windows (7+), but TileDB should work with any reasonably recent version of Ubuntu, CentOS, macOS or Windows with an installed compiler supporting C++20 (minimum tested version: GCC 10).
Once you build TileDB, visit the page to see how to use TileDB in your programs.
TileDB requires a recent version of the build system (and if needed will update), and a compiler supporting C++20. For compression, TileDB relies on the following libraries:
When building from source, TileDB will locate these dependencies if already installed on your system, and locally install (not system-wide) any of them that are missing.
Backend support for S3 stores requires the . Similarly to the required dependencies, the TileDB build system will install the SDK locally if it is not already present on your system (when the S3 build option is enabled).
TileDB also integrates well with the S3-compliant object store.
During the build process the following environmental variables must be set:
JAVA_HOME
: Path to the location of the Java installation.
HADOOP_HOME
: Path to the location of the HDFS installation.
CLASSPATH
: The Hadoop jars must be added to the CLASSPATH
before interacting with libhdfs
.
If any dependencies are not found pre-installed on your system, the TileDB build process will download and build them automatically. Preferentially, any dependencies built by this process will be built as static libraries, which are statically linked against the TileDB shared library during the build. This simplifies usage of TileDB, as it results in a single binary object, e.g. libtiledb.so
that contains all of the dependencies. When installing TileDB, only the TileDB include files and the dynamic object libtiledb.so
will be copied into the installation prefix.
If TileDB is itself built as a static library (using the TILEDB_STATIC=ON
CMake variable or corresponding bootstrap
flag), the dependency static libraries must be installed alongside the resulting static libtiledb.a
object. This is because static libraries cannot be statically linked together into a single object (at least not in a portable way). Therefore, when installing TileDB all static dependency libraries will be copied into the installation prefix alongside libtiledb.a
.
Backend support for the Hadoop File System is optional. TileDB relies on the C interface to HDFS provided by to interact with the distributed filesystem.
Consult the for installing, setting up, and using the distributed Hadoop file system.