【发布时间】:2021-04-06 17:54:01
【问题描述】:
C 标准库包含一个方法 strerror_r (https://linux.die.net/man/3/strerror_r)。
根据编译时定义的“功能测试宏”,以及与 GNU 标准头文件的对比,包含两个定义之一:
int strerror_r(int errnum, char buf, size_t buflen); / XSI 兼容 */
char *strerror_r(int errnum, char buf, size_t buflen); / GNU 特定 */
在以下情况下提供符合 XSI 的 strerror_r() 版本: (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)&& ! _GNU_SOURCE 否则,将提供特定于 GNU 的版本。
假设我动态链接我的应用程序与标准库,链接器如何正确链接与函数的正确定义?
【问题讨论】:
标签: c linux gcc dynamic-linking c-standard-library