【发布时间】:2018-04-30 19:38:23
【问题描述】:
我正在使用标准的__wrap_function 和__real_function 来拦截-Wl,--wrap=function 的函数调用。这适用于大多数函数,如malloc、fopen 等。但是,我无法包装这两个函数:
int connect(int, const struct sockaddr*, socklen_t)int stat(const char*, struct stat*)
使用这些函数,链接器会抱怨对 __real_connect 和 __real_stat 的未定义引用。
这有什么特别的原因吗? (注:例如,我也可以包装socket 函数)
【问题讨论】:
-
您使用的是哪个操作系统和 C 库?
-
了解您使用的 C 编译器和 libc 会很有帮助。鉴于您的个人资料图片和这些选项的性质,假设 gcc 和 glibc 是相当安全的,但最好明确指定。
-
我卡在 GCC 4.4.7 和 glibc 2.12,Linux 内核 2.6.32
标签: c gcc linker-errors ld undefined-reference