# LINK_LIBRARIES

List of direct link dependencies.

This property specifies the list of libraries or targets which will be used for linking. In addition to accepting values from the `target_link_libraries()` command, values may be set directly on any target using the `set_property()` command.

The value of this property is used by the generators to construct the link rule for the target. The direct link dependencies are linked first, followed by indirect dependencies from the transitive closure of the direct dependencies' `INTERFACE_LINK_LIBRARIES` properties. See policy `CMP0022`.

Contents of `LINK_LIBRARIES` may use `generator expressions` with the syntax `$<...>`. Policy `CMP0131` affects the behavior of the `LINK_ONLY` generator expression for this property.

See the `cmake-buildsystem(7)` manual for more on defining buildsystem properties.

Note

A call to `target_link_libraries(<target> ...)` may update this property on `<target>`. If `<target>` was not created in the same directory as the call then `target_link_libraries()` will wrap each entry with the form `::@(directory-id);...;::@`, where the `::@` is literal and the `(directory-id)` is unspecified. This tells the generators that the named libraries must be looked up in the scope of the caller rather than in the scope in which the `<target>` was created. Valid directory ids are stripped on export by the `install(EXPORT)` and `export()` commands.

In advanced use cases, the list of direct link dependencies specified by this property may be updated by usage requirements from dependencies. See the `INTERFACE_LINK_LIBRARIES_DIRECT` and `INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE` target properties.

See the `CMAKE_LINK_LIBRARIES_STRATEGY` variable and corresponding `LINK_LIBRARIES_STRATEGY` target property for details on how CMake orders direct link dependencies on linker command lines.