【问题标题】:Which library to link on cygwin for getnetbyname?在 cygwin 上为 getnetbyname 链接哪个库?
【发布时间】:2014-12-22 03:23:08
【问题描述】:

我正在尝试找出一个更大的问题,这里是简化的测试用例。

#include <netdb.h>
int main(int argc, char** argv)
{
 getnetbyname("localhost");
 return 0;
}

我编译为:

$ gcc -c -Werror -Wall foo.c

$ gcc foo.o
foo.o:foo.c:(.text+0x16): undefined reference to `getnetbyname'
collect2: error: ld returned 1 exit status

$ gcc foo.o -llwres
foo.o:foo.c:(.text+0x16): undefined reference to `getnetbyname'
collect2: error: ld returned 1 exit status

$ gcc foo.o -lwsock32
foo.o:foo.c:(.text+0x16): undefined reference to `getnetbyname'
collect2: error: ld returned 1 exit status

$ gcc foo.o -lmswsock
foo.o:foo.c:(.text+0x16): undefined reference to `getnetbyname'
collect2: error: ld returned 1 exit status

$ gcc foo.o -lamIcrazy
/usr/lib/gcc/i686-pc-cygwin/4.8.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lamIcrazy
collect2: error: ld returned 1 exit status

不知道从哪里开始,我很确定 Perl 使用了这个参考,但我不能遵循构建(还)。 gcc foo.o 在 Centos 6 上工作。

这里是带有 getnetbyname 符号的 .a 文件

Binary file /usr/lib/perl5/5.14/i686-cygwin-threads-64int/CORE/libperl.a matches
Binary file /usr/lib/w32api/libmswsock.a matches
Binary file /usr/lib/w32api/libwsock32.a matches

$ nm /usr/lib/w32api/libmswsock.a --demangle | grep -B 10 getnetbyname

dqsls00019.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
         U _head_lib32_libmswsock_a
00000000 I _imp__getnetbyname@4
00000000 T getnetbyname@4

$ nm /usr/lib/w32api/libwsock32.a --demangle | grep -B 10 getnetbyname

duegs00043.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
         U _head_lib32_libwsock32_a
00000000 I _imp__getnetbyname@4
00000000 T getnetbyname@4

【问题讨论】:

    标签: gcc cygwin undefined-reference


    【解决方案1】:

    根据https://cygwin.com/cygwin-api/std-notimpl.html,它似乎没有实现。

    我一定误解了 libwsock32.alibmswsock.a 的导出

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多