Mar*_*rik 3 lookup symbols cmake
我正在尝试使用 CMake 检查符号 getaddrinfo_a 是否存在:
list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
check_symbol_exists(getaddrinfo_a netdb.h HAVE_GETADDRINFO_A)
list(REMOVE_ITEM CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
Run Code Online (Sandbox Code Playgroud)
虽然 getaddrinfo_a 在 netdb.h 中定义(假定已定义 _GNU_SOURCE),但 CMake 无法找到它:
-- Looking for getaddrinfo_a
-- Looking for getaddrinfo_a - not found.
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
根据getaddrinfo_a手册页,该函数需要libanl在链接时。CMAKE_REQUIRED_LIBRARIES在调用之前尝试设置check_symbol_exists:
list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
list(APPEND CMAKE_REQUIRED_LIBRARIES anl)
check_symbol_exists(getaddrinfo netdb.h HAVE_GETADDRINFO_A)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |