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:
target_link_libraries(example PRIVATE ${CMAKE_DL_LIBS})
Example: Checking Symbols
Checking for symbols with the dynamic loading library linked during the check:
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()
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CMAKE_DL_LIBS.html