---
name: "llvm-config-18"
section: "1"
platform: "linux"
package: "llvm-18"
version: "1:18.1.8-18+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/llvm-config-18"
---

# llvm-config-18(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-2025, LLVM Project
