【发布时间】:2011-02-13 02:13:28
【问题描述】:
我已包含标题 netdb.h,其中包含 getaddrinfo,但 gcc 发出此警告:
warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
gcc -m32 -static -s -O2 -std=c99 -D_POSIX_C_SOURCE=200112L myprogram.c
如何静态编译缺少的文件?
可能的解决方案:
可能是 glibc 安装缺少静态编译所需的相应目标文件。如果是这种情况,请创建相应的目标文件并在编译时链接它。
尝试使用 EGLIBC 代替 glibc。
我成功地使用 Dietlibc 编译了我的程序,该程序编译时没有任何错误,而且生成的二进制文件比 glibc 生成的要小得多。
【问题讨论】:
-
我会让您的可能解决方案成为答案。然后你可以接受你自己的答案。
标签: c gcc posix c99 static-linking