# llvm-config - Print LLVM compilation options

## SYNOPSIS

llvm-config option [components…]

## DESCRIPTION

llvm-config makes it easier to build applications that use LLVM. It can print the compiler flags, linker flags and object libraries needed to link against LLVM.

## EXAMPLES

To link against the JIT:

    g++ `llvm-config --cxxflags` -o HowToUseJIT.o -c HowToUseJIT.cpp
    g++ `llvm-config --ldflags` -o HowToUseJIT HowToUseJIT.o \
        `llvm-config --libs engine bcreader scalaropts`

## OPTIONS

–assertion-mode

> Print the assertion mode used when LLVM was built (ON or OFF).

–bindir

> Print the installation directory for LLVM binaries.

–build-mode

> Print the build mode used when LLVM was built (e.g. Debug or Release).

–build-system

> Print the build system used to build LLVM (e.g. cmake or gn).

–cflags

> Print the C compiler flags needed to use LLVM headers.

–cmakedir

> Print the installation directory for LLVM CMake modules.

–components

> Print all valid component names.

–cppflags

> Print the C preprocessor flags needed to use LLVM headers.

–cxxflags

> Print the C++ compiler flags needed to use LLVM headers.

–has-rtti

> Print whether or not LLVM was built with rtti (YES or NO).

–help

> Print a summary of llvm-config arguments.

–host-target

> Print the target triple used to configure LLVM.

–ignore-libllvm

> Ignore libLLVM and link component libraries instead.

–includedir

> Print the installation directory for LLVM headers.

–ldflags

> Print the flags needed to link against LLVM libraries.

–libdir

> Print the installation directory for LLVM libraries.

–libfiles

> Similar to –libs, but print the full path to each library file. This is useful when creating makefile dependencies, to ensure that a tool is relinked if any library it uses changes.

–libnames

> Similar to –libs, but prints the bare filenames of the libraries without -l or pathnames. Useful for linking against a not-yet-installed copy of LLVM.

–libs

> Print all the libraries needed to link against the specified LLVM components, including any dependencies.

–link-shared

> Link the components as shared libraries.

–link-static

> Link the component libraries statically.

–obj-root

> Print the object root used to build LLVM.

–prefix

> Print the installation prefix for LLVM.

–shared-mode

> Print how the provided components can be collectively linked (shared or static).

–system-libs

> Print all the system libraries needed to link against the specified LLVM components, including any dependencies.

–targets-built

> Print the component names for all targets supported by this copy of LLVM.

–version

> Print the version number of LLVM.

## COMPONENTS

To print a list of all available components, run llvm-config –components. In most cases, components correspond directly to LLVM libraries. Useful “virtual” components include:

all

> Includes all LLVM libraries. The default if no components are specified.

backend

> Includes either a native backend or the C backend.

engine

> Includes either a native JIT or the bitcode interpreter.

## EXIT STATUS

If llvm-config succeeds, it will exit with 0. Otherwise, if an error occurs, it will exit with a non-zero value.