New in version 3.18.

Check whether the compiler supports a given link flag.

check_linker_flag(<lang> <flag> <var>)

Check that the link <flag> is accepted by the <lang> compiler without a diagnostic. Stores the result in an internal cache entry named <var>.

This command temporarily sets the CMAKE_REQUIRED_LINK_OPTIONS variable and calls the check_<lang>_source_compiles macro from the Check<lang>SourceCompiles module (CheckCSourceCompiles, CheckCSourceCompiles, CheckCXXSourceCompiles, CheckOBJCSourceCompiles, CheckOBJCXXSourceCompiles or CheckFortranSourceCompiles). See documentation of these modules for a listing of variables that can otherwise modify the build.

The underlying implementation rely on LINK_OPTIONS property to check the specified flag. The LINKER: prefix, as described in target_link_options() command, can be used as well.

A positive result from this check indicates only that the compiler did not issue a diagnostic message when given the link flag. Whether the flag has any effect or even a specific one is beyond the scope of this module.


Since the try_compile() command forwards flags from variables like CMAKE_<LANG>_FLAGS, unknown flags in such variables may cause a false negative for this check.