0

我不明白为什么 g++getnameinfo在 ws2_32 中找不到,nm 显示它在那里。这是输出:

$ I:/Programs/MinGW/msys/1.0/bin/sh.exe ../libtool --tag=CXX --mode=link g++
 -g -O2 -no-undefined -version-info 16:0:0 -o libetpan.la -rpath /i/Programs/M
inGW/lib dummy.lo versioninfo.lo data-types/libdata-types.la low-level/liblow-l
evel.la driver/libdriver.la main/libmain.la engine/libengine.la windows/libarch
.la -L/i/Programs/MinGW/lib -lws2_32 -liconv
libtool:链接:rm -fr .libs/libetpan.dll.a
libtool:链接:g++ -shared -nostdlib i:/programs/mingw/bin/../lib/gcc/mingw32/4。
7.0/../../../dllcrt2.oi:/programs/mingw/bin/../lib/gcc/mingw32/4.7.0/crtbegin.o
  .libs/dummy.o .libs/versioninfo.o -Wl,--whole-archive data-types/.libs/libdat
a-types.a 低级/.libs/liblow-level.a 驱动程序/.libs/libdriver.a main/.libs/lib
main.a 引擎/.libs/libengine.a windows/.libs/libarch.a -Wl,--no-whole-archive
-lws2_32 -lws2_32 -lws2_32 -lws2_32 -lws2_32 -lws2_32 -L/i/Programs/MinGW/lib -l
ws2_32 /mingw/lib/libiconv.dll.a -Li:/programs/mingw/bin/../lib/gcc/mingw32/4.7。
0 -Li:/programs/mingw/bin/../lib/gcc -Li:/programs/mingw/bin/../lib/gcc/mingw32/
4.7.0/../../../../mingw32/lib -Li:/programs/mingw/bin/../lib/gcc/mingw32/4.7.0/。
./../.. -lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi3
2 -lshell32 -luser32 -lws2_32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmi
ngwex -lmsvcrt i:/programs/mingw/bin/../lib/gcc/mingw32/4.7.0/crtend.o -O2 -p
线程 -o .libs/libetpan-16.dll -Wl,--enable-auto-image-base -Xlinker --out-impl
ib -Xlinker .libs/libetpan.dll.a
创建库文件:.libs/libetpan.dll.a
警告:通过链接到 _closesocket@4 来解析 _closesocket
使用 --enable-stdcall-fixup 禁用这些警告
使用 --disable-stdcall-fixup 禁用这些修复
低级/.libs/liblow-level.a(mailsmtp.o):在函数“get_hostname”中:
c:\libetpan-00c7589\src\low-level\smtp/mailsmtp.c:266: 未定义引用`_
获取名称信息'
collect2.exe:错误:ld 返回 1 退出状态

$ nm /i/Programs/MinGW/lib/libws2_32.a | grep 获取名称信息
00000000 我 __imp__getnameinfo@28
00000000 T _getnameinfo@28
4

1 回答 1

1

我需要#define _WIN32_WINNT 0x0501

于 2012-08-02T22:44:46.620 回答