zoukankan      html  css  js  c++  java
  • ws2_32.lib 引发的LNK2019问题解决办法

    编译带有MongoDB c++ 驱动库的时候,出现了大量LNK2019的错误

     1 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__WSASetLastError@4,该符号在函数 _WspiapiGetNameInfo@28 中被引用
     2 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__WSASetLastError@4
     3 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__WSASetLastError@4
     4 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__inet_ntoa@4,该符号在函数 _WspiapiLegacyGetAddrInfo@16 中被引用
     5 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__inet_ntoa@4
     6 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__inet_ntoa@4
     7 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__htonl@4,该符号在函数 _WspiapiLegacyGetAddrInfo@16 中被引用
     8 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__htonl@4
     9 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__htonl@4
    10 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__getservbyname@8,该符号在函数 _WspiapiLegacyGetAddrInfo@16 中被引用
    11 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__getservbyname@8
    12 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__getservbyname@8
    13 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__htons@4,该符号在函数 _WspiapiLegacyGetAddrInfo@16 中被引用
    14 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__htons@4
    15 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__htons@4
    16 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__inet_addr@4,该符号在函数 _WspiapiParseV4Address@8 中被引用
    17 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__inet_addr@4
    18 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__inet_addr@4
    19 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__WSAGetLastError@0,该符号在函数 _WspiapiQueryDNS@24 中被引用
    20 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__WSAGetLastError@0
    21 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__WSAGetLastError@0
    22 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__gethostbyname@4,该符号在函数 _WspiapiQueryDNS@24 中被引用
    23 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__gethostbyname@4
    24 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__gethostbyname@4
    25 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__gethostbyaddr@12,该符号在函数 _WspiapiLegacyGetNameInfo@28 中被引用
    26 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__gethostbyaddr@12
    27 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__gethostbyaddr@12
    28 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__getservbyport@8,该符号在函数 _WspiapiLegacyGetNameInfo@28 中被引用
    29 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__getservbyport@8
    30 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__getservbyport@8
    31 1>MongoDrv.lib(dbclient.obj) : error LNK2019: 无法解析的外部符号 __imp__ntohs@4,该符号在函数 _WspiapiLegacyGetNameInfo@28 中被引用
    32 1>MongoDrv.lib(message.obj) : error LNK2001: 无法解析的外部符号 __imp__ntohs@4
    33 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__ntohs@4
    34 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__accept@12,该符号在函数 "public: void __thiscall mongo::Listener::initAndListen(void)" (?initAndListen@Listener@mongo@@QAEXXZ) 中被引用
    35 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 ___WSAFDIsSet@8,该符号在函数 "public: void __thiscall mongo::Listener::initAndListen(void)" (?initAndListen@Listener@mongo@@QAEXXZ) 中被引用
    36 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__select@20,该符号在函数 "public: void __thiscall mongo::Listener::initAndListen(void)" (?initAndListen@Listener@mongo@@QAEXXZ) 中被引用
    37 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__listen@8,该符号在函数 "public: void __thiscall mongo::Listener::initAndListen(void)" (?initAndListen@Listener@mongo@@QAEXXZ) 中被引用
    38 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__closesocket@4,该符号在函数 "public: void __thiscall mongo::Listener::initAndListen(void)" (?initAndListen@Listener@mongo@@QAEXXZ) 中被引用
    39 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__closesocket@4
    40 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__bind@12,该符号在函数 "public: void __thiscall mongo::Listener::initAndListen(void)" (?initAndListen@Listener@mongo@@QAEXXZ) 中被引用
    41 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__bind@12
    42 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__setsockopt@20,该符号在函数 "public: void __thiscall mongo::Listener::initAndListen(void)" (?initAndListen@Listener@mongo@@QAEXXZ) 中被引用
    43 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__socket@12,该符号在函数 "public: void __thiscall mongo::Listener::initAndListen(void)" (?initAndListen@Listener@mongo@@QAEXXZ) 中被引用
    44 1>MongoDrv.lib(sock.obj) : error LNK2001: 无法解析的外部符号 __imp__socket@12
    45 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__connect@12,该符号在函数 "public: virtual void __thiscall mongo::ConnectBG::run(void)" (?run@ConnectBG@mongo@@UAEXXZ) 中被引用
    46 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__send@16,该符号在函数 "public: void __thiscall mongo::MessagingPort::send(char const *,int,char const *)" (?send@MessagingPort@mongo@@QAEXPBDH0@Z) 中被引用
    47 1>MongoDrv.lib(message.obj) : error LNK2019: 无法解析的外部符号 __imp__recv@16,该符号在函数 "public: void __thiscall mongo::MessagingPort::recv(char *,int)" (?recv@MessagingPort@mongo@@QAEXPADH@Z) 中被引用
    48 1>MongoDrv.lib(sock.obj) : error LNK2019: 无法解析的外部符号 __imp__sendto@24,该符号在函数 "public: int __thiscall mongo::UDPConnection::sendto(char *,int,struct mongo::SockAddr const &)" (?sendto@UDPConnection@mongo@@QAEHPADHABUSockAddr@2@@Z) 中被引用
    49 1>MongoDrv.lib(sock.obj) : error LNK2019: 无法解析的外部符号 __imp__getsockopt@20,该符号在函数 "public: bool __thiscall mongo::UDPConnection::init(struct mongo::SockAddr const &)" (?init@UDPConnection@mongo@@QAE_NABUSockAddr@2@@Z) 中被引用
    50 1>MongoDrv.lib(sock.obj) : error LNK2019: 无法解析的外部符号 __imp__recvfrom@24,该符号在函数 "public: int __thiscall mongo::UDPConnection::recvfrom(char *,int,struct mongo::SockAddr &)" (?recvfrom@UDPConnection@mongo@@QAEHPADHAAUSockAddr@2@@Z) 中被引用
    51 1>MongoDrv.lib(sock.obj) : error LNK2019: 无法解析的外部符号 __imp__gethostname@8,该符号在函数 "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl mongo::getHostName(void)" (?getHostName@mongo@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) 中被引用
    52 1>MongoDrv.lib(sock.obj) : error LNK2019: 无法解析的外部符号 __imp__WSAStartup@8,该符号在函数 "public: __thiscall mongo::`anonymous namespace'::WinsockInit::WinsockInit(void)" (??0WinsockInit@?A0xfa0c0041@mongo@@QAE@XZ) 中被引用
    问题表现

    解决方法: #pragma comment(lib,"ws2_32.lib")  或在工程设置中手工链入ws2_32.lib (  工程属性->配置属性->链接器->输入->附加依赖项   添加ws2_32.lib )

    两种方法都一样,但如果在代码里添加,则其他人用你的项目时就不需要手动修改工程配置了

    详参: http://hi.baidu.com/story_of_water/item/7de81e3eebf61b302e20c481

    ws2_32.lib:在网络编程中出现, 提供了对以下网络相关API的支持,若使用其中的API,则应该将ws2_32.lib加入工程(否则需要动态载入ws2_32.dll)。

      1 accept
      2 bind
      3 closesocket
      4 connect
      5 getpeername
      6 getsockname
      7 getsockopt
      8 htonl
      9 htons
     10 ioctlsocket
     11 inet_addr
     12 inet_ntoa
     13 listen
     14 ntohl
     15 ntohs
     16 recv
     17 recvfrom
     18 select
     19 send
     20 sendto
     21 setsockopt
     22 shutdown
     23 socket
     24 GetAddrInfoW
     25 GetNameInfoW
     26 WSApSetPostRoutine
     27 FreeAddrInfoW
     28 WPUCompleteOverlappedRequest
     29 WSAAccept
     30 WSAAddressToStringA
     31 WSAAddressToStringW
     32 WSACloseEvent
     33 WSAConnect
     34 WSACreateEvent
     35 WSADuplicateSocketA
     36 WSADuplicateSocketW
     37 WSAEnumNameSpaceProvidersA
     38 WSAEnumNameSpaceProvidersW
     39 WSAEnumNetworkEvents
     40 WSAEnumProtocolsA
     41 WSAEnumProtocolsW
     42 WSAEventSelect
     43 WSAGetOverlappedResult
     44 WSAGetQOSByName
     45 WSAGetServiceClassInfoA
     46 WSAGetServiceClassInfoW
     47 WSAGetServiceClassNameByClassIdA
     48 WSAGetServiceClassNameByClassIdW
     49 WSAHtonl
     50 WSAHtons
     51 gethostbyaddr
     52 gethostbyname
     53 getprotobyname
     54 getprotobynumber
     55 getservbyname
     56 getservbyport
     57 gethostname
     58 WSAInstallServiceClassA
     59 WSAInstallServiceClassW
     60 WSAIoctl
     61 WSAJoinLeaf
     62 WSALookupServiceBeginA
     63 WSALookupServiceBeginW
     64 WSALookupServiceEnd
     65 WSALookupServiceNextA
     66 WSALookupServiceNextW
     67 WSANSPIoctl
     68 WSANtohl
     69 WSANtohs
     70 WSAProviderConfigChange
     71 WSARecv
     72 WSARecvDisconnect
     73 WSARecvFrom
     74 WSARemoveServiceClass
     75 WSAResetEvent
     76 WSASend
     77 WSASendDisconnect
     78 WSASendTo
     79 WSASetEvent
     80 WSASetServiceA
     81 WSASetServiceW
     82 WSASocketA
     83 WSASocketW
     84 WSAStringToAddressA
     85 WSAStringToAddressW
     86 WSAWaitForMultipleEvents
     87 WSCDeinstallProvider
     88 WSCEnableNSProvider
     89 WSCEnumProtocols
     90 WSCGetProviderPath
     91 WSCInstallNameSpace
     92 WSCInstallProvider
     93 WSCUnInstallNameSpace
     94 WSCUpdateProvider
     95 WSCWriteNameSpaceOrder
     96 WSCWriteProviderOrder
     97 freeaddrinfo
     98 getaddrinfo
     99 getnameinfo
    100 WSAAsyncSelect
    101 WSAAsyncGetHostByAddr
    102 WSAAsyncGetHostByName
    103 WSAAsyncGetProtoByNumber
    104 WSAAsyncGetProtoByName
    105 WSAAsyncGetServByPort
    106 WSAAsyncGetServByName
    107 WSACancelAsyncRequest
    108 WSASetBlockingHook
    109 WSAUnhookBlockingHook
    110 WSAGetLastError
    111 WSASetLastError
    112 WSACancelBlockingCall
    113 WSAIsBlocking
    114 WSAStartup
    115 WSACleanup
    116 __WSAFDIsSet
    117 WEP
    ws2_32.lib支持如下api
  • 相关阅读:
    转:SQL Case when 的使用方法
    转:性能测试知多少
    转:如何让LoadRunner实现多个场景运行?
    转:Loadrunner学习知多少--脚本录制下载操作
    1.3 本章小结
    1.2.5 内部元数据
    1.2.4 创建图像查看应用程序
    1.2.3 使用MediaStore检索图像
    1.2.2 更新CameraActivity以使用MediaStore存储图像和关联元数据
    1.2.1 获得图像的Uri
  • 原文地址:https://www.cnblogs.com/elenno/p/ws2_32_lib.html
Copyright © 2011-2022 走看看