error LNK2019: 无法解析的外部符号 问题的解决办法

时间:2022-01-09 02:50:52

正在编译...
1>Ipv4IPv6traceroutesrc.cpp
1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(461) : warning C4267: “参数”: 从“size_t”转换到“DWORD”,可能丢失数据
1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(1131) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(1167) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(1201) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
1>正在链接...
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__WSASetLastError@4,该符号在函数 _WspiapiGetNameInfo@28 中被引用
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__inet_ntoa@4,该符号在函数 _WspiapiLegacyGetAddrInfo@16 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__inet_ntoa@4
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__htonl@4,该符号在函数 _WspiapiLegacyGetAddrInfo@16 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__htonl@4
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__getservbyname@8,该符号在函数 _WspiapiLegacyGetAddrInfo@16 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__getservbyname@8
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__htons@4,该符号在函数 _WspiapiLegacyGetAddrInfo@16 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__htons@4
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__inet_addr@4,该符号在函数 _WspiapiParseV4Address@8 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__inet_addr@4
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__WSAGetLastError@0,该符号在函数 _WspiapiQueryDNS@24 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__WSAGetLastError@0
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__gethostbyname@4,该符号在函数 _WspiapiQueryDNS@24 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__gethostbyname@4
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__gethostbyaddr@12,该符号在函数 _WspiapiLegacyGetNameInfo@28 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__gethostbyaddr@12
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__getservbyport@8,该符号在函数 _WspiapiLegacyGetNameInfo@28 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__getservbyport@8
1>resolve.obj : error LNK2019: 无法解析的外部符号 __imp__ntohs@4,该符号在函数 _WspiapiLegacyGetNameInfo@28 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2001: 无法解析的外部符号 __imp__ntohs@4
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__WSAIoctl@36,该符号在函数 "unsigned short __cdecl ComputeIcmp6PseudoHeaderChecksum(unsigned int,char *,int,struct addrinfo *)" (?ComputeIcmp6PseudoHeaderChecksum@@YAGIPADHPAUaddrinfo@@@Z) 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__WSARecvFrom@36,该符号在函数 "int __cdecl PostRecvfrom(unsigned int,char *,int,struct sockaddr *,int *,struct _OVERLAPPED *)" (?PostRecvfrom@@YAHIPADHPAUsockaddr@@PAHPAU_OVERLAPPED@@@Z) 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__setsockopt@20,该符号在函数 "int __cdecl SetTtl(unsigned int,int)" (?SetTtl@@YAHIH@Z) 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__WSACleanup@0,该符号在函数 _main 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__closesocket@4,该符号在函数 _main 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__WSAResetEvent@4,该符号在函数 _main 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__WSAGetOverlappedResult@20,该符号在函数 _main 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__sendto@24,该符号在函数 _main 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__WSACreateEvent@0,该符号在函数 _main 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__bind@12,该符号在函数 _main 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__socket@12,该符号在函数 _main 中被引用
1>Ipv4IPv6traceroutesrc.obj : error LNK2019: 无法解析的外部符号 __imp__WSAStartup@8,该符号在函数 _main 中被引用
1>D:\研究生\C++\study\test\Debug\test.exe : fatal error LNK1120: 23 个无法解析的外部命令
1>生成日志保存在“file://d:\研究生\C++\study\test\test\Debug\BuildLog.htm”
1>test - 34 个错误,4 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========

 

解决方法:在cpp文件Include后添加 #pragma comment(lib,"ws2_32.lib")

#include “***”

#pragma comment(lib,"ws2_32.lib")