# LINKER_TYPE

New in version 3.29.

Specify which linker will be used for the link step. The property value may use `generator expressions`.

    add_library(lib1 SHARED ...)
    set_property(TARGET lib1 PROPERTY LINKER_TYPE LLD)

This specifies that `lib1` should use linker type `LLD` for the link step. The implementation details will be provided by the variable `CMAKE_<LANG>_USING_LINKER_<TYPE>` with `<TYPE>` having the value `LLD`.

This property is not supported on `Green Hills MULTI` and `Visual Studio 9 2008` generators.

Note

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

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.