我已经包含了 header 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 生成的要小得多。