Back to Cmake

CMAKE_DL_LIBS

Help/variable/CMAKE_DL_LIBS.rst

4.3.21.2 KB
Original Source

CMAKE_DL_LIBS

This variable contains a name of the dynamic loading library, or a list of system libraries needed to use the dlopen() and dlclose() functions.

Few examples of the values this variable is set to:

dl On most Unix-like systems.

-lld On AIX, prior to CMake 4.2.

dld On HP-UX.

"" Empty string value or not set on systems that have dl*() functions either in the default library that is implicitly linked (e.g., BSD-like systems, Haiku, macOS, SunOS, 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()