尽管符号存在,但 CMake 中的符号查找失败

2024-02-11

我正在尝试使用 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)

虽然 getaddrinfo_a 在 netdb.h 中定义(假定已定义 _GNU_SOURCE),但 CMake 无法找到它:

-- Looking for getaddrinfo_a
-- Looking for getaddrinfo_a - not found.

知道我做错了什么吗?


根据获取地址信息_a http://www.kernel.org/doc/man-pages/online/pages/man3/getaddrinfo_a.3.html手册页,该函数需要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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尽管符号存在,但 CMake 中的符号查找失败 的相关文章

随机推荐