CMAKE_DL_LIBS

此变量包含一个用于使用 dlopen()dlclose() 函数的动态加载库的名称,或是一组系统库。

此变量的几个示例如下:

dl

在大多数类 Unix 系统上。

-lld

在 AIX 系统上,CMake 4.2 之前。

dld

在 HP-UX 系统上。

""

在以下系统上,此变量的值为空字符串或未设置:隐式链接的默认库中包含 dl*() 函数的系统(例如,类 BSD 系统、Haiku、macOS、SunOS 等),或者不提供这些函数的系统(例如,Windows)。

示例

示例:链接动态加载库

在使用了动态加载功能的项目中,使用此变量

target_link_libraries(example PRIVATE ${CMAKE_DL_LIBS})

示例:检查符号

在检查过程中,使用链接的动态加载库来检查符号

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()