CMAKE_LINKER_TYPE — CMake 3.29.0 Documentation

# CMAKE_LINKER_TYPE

New in version 3.29.

Specify which linker will be used for the link step.

Note

It is assumed that the linker specified is fully compatible with the standard one. CMake will not do any options translation.

This variable is used to initialize the `LINKER_TYPE` target property when they are created by calls to `add_library()` or `add_executable()` commands. It is meaningful only for targets having a link step. If set, its value is also used by the `try_compile()` command.

Linker types are case-sensitive and may only contain letters, numbers and underscores. Linker types defined in all uppercase are reserved for CMake's own built-in types. The pre-defined linker types are:

`DEFAULT`

  This type corresponds to standard linking, essentially equivalent to not specifying `LINKER_TYPE` target property.

`SYSTEM`

  Use the standard linker delivered by the platform or the standard toolkit (for example, `SYSTEM` imply Microsoft linker for all `MSVC` compatible compilers). This type is supported for the following platforms/compilers:

  - Linux, for `GNU`, `Clang`, `LLVMFlang` and `NVIDIA` compilers.

  - All Apple variants for `AppleClang`, `Clang` and `GNU` compilers.

  - Windows, for `MSVC`, `GNU`, `Clang` and `NVIDIA` compilers.

`LLD`

  Use the `LLVM` linker. This type is supported for the following platforms/compilers:

  - Linux, for `GNU`, `Clang`, `LLVMFlang` and `NVIDIA` compilers.

  - All Apple variants for `Clang` and `AppleClang` compilers.

  - Windows, for `GNU`, `Clang` compilers with `GNU` front-end and `CLang`, `MSVC` and `NVIDIA` compilers with `MSVC` front-end.

`BFD`

  Use the `GNU` linker. This type is supported for the following platforms/compilers:

  - Linux, for `GNU`, `Clang`, `LLVMFlang` and `NVIDIA` compilers.

  - Windows, for `GNU`, `Clang` compilers with `GNU` front-end.

`GOLD`

  Supported on Linux platform for `GNU`, `Clang`, `LLVMFlang` and `NVIDIA` compilers.

`MOLD`

  Use the mold linker. This type is supported on the following platforms:

  - Linux platform for `GNU`, `Clang`, `LLVMFlang` and `NVIDIA` compilers.

  - All Apple variants for `Clang` and `AppleClang` compilers as an alias to `SOLD`.

`SOLD`

  Use the sold linker. This type is only supported on Apple platforms for `Clang` and `AppleClang` compilers.

`APPLE_CLASSIC`

  Use the Apple linker in the classic behavior (i.e. before `Xcode 15.0`). This type is only supported on Apple platforms for `GNU`, `Clang` and `AppleClang` compilers.

`MSVC`

  Use the Microsoft linker. This type is only supported on Windows platform for `MSVC` and `Clang` compiler with `MSVC` front-end.