blob: cd354a8799fcedf62d99222ee4560454cfba44e4 [file]
CMAKE_DL_LIBS
-------------
This variable contains a name of the dynamic loading library, or a list of
system libraries needed to use the platform's dynamic loading functions.
On most Unix-like systems, these are the functions declared in the
``<dlfcn.h>`` header, such as ``dlopen()``, ``dlsym()``, ``dlerror()``, and
``dlclose()``.
Few examples of the values this variable is set to:
``dl``
On most Unix-like systems.
``ld``
On AIX. Prior to CMake 4.2, the value was ``-lld``.
``dld``
On HP-UX.
""
Empty string value or not set on systems that provide these functions in
the default library that is implicitly linked (e.g., BSD-like systems,
Haiku, macOS, etc.), or on systems that don't provide these functions
(e.g., Windows).
Examples
^^^^^^^^
Example: Linking Dynamic Loading Library
""""""""""""""""""""""""""""""""""""""""
Using this variable in a project that uses dynamic loading functionality:
.. code-block:: cmake
target_link_libraries(example PRIVATE ${CMAKE_DL_LIBS})
Example: Checking Symbols
"""""""""""""""""""""""""
Checking for symbols with the dynamic loading library linked during the check:
.. code-block:: cmake
include(CheckSymbolExists)
include(CMakePushCheckState)
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_DL_LIBS})
check_symbol_exists(dlopen "dlfcn.h" HAVE_DLOPEN)
cmake_pop_check_state()