---
name: "llvm-config-16"
section: "1"
platform: "linux"
package: "llvm-16"
version: "1:16.0.6-15~deb12u1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/llvm-config-16"
---

# llvm-config-16(1)

Print LLVM compilation options

## NAME

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.

## AUTHOR

Maintained by the LLVM Team (https://llvm.org/).

## COPYRIGHT

2003-2023, LLVM Project
