我已经包含了标题netdb.h
, where 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。
我使用 Diet libc 成功编译了我的程序,编译时没有任何错误,而且生成的二进制文件比 glibc 生成的文件小得多。
glibc 使用 libnss 支持许多不同的地址解析服务提供者。不幸的是,您无法静态链接 libnss,因为它加载的提供程序具体取决于本地系统的配置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)