如何链接包含htonl,ntohl和amp;的库在VC ++ 2017中的ntohs? [英] How to link library containing htonl, ntohl & ntohs in VC++ 2017?

查看:354
本文介绍了如何链接包含htonl,ntohl和amp;的库在VC ++ 2017中的ntohs?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到错误消息,例如



 1> dsim.obj:错误LNK2019:未解析的外部符号__imp__htonl @ 4在函数中引用unsigned short __cdecl AddEthCard(unsigned int,unsigned char *,char *,struct pcap *)(?AddEthCard @@ YAGIPAEPADPAUpcap @@@ Z)
1> dsim.obj:错误LNK2019:未解析的外部符号__imp__ntohl @ 4在函数void __cdecl HandleIGMPMsg(struct ethcard *,struct pcap_pkthdr *,unsigned char *)中引用(?HandleIGMPMsg @@ YAXPAUethcard @@ PAUpcap_pkthdr @@ PAE @ Z)
1> dsim.obj:错误LNK2019:函数void __cdecl HandleARPMsg(struct ethcard *,unsigned char *)中引用了未解析的外部符号__imp__ntohs @ 4(?HandleARPMsg @@ YAXPAUethcard @@ PAE @ Z)





我找到了关于它的消息,并知道它需要链接ws2_32.lib。我做的是:

1.在链接器中添加ws2_32.lib到附加依赖项 - >输入。

2.添加包含ws2_32.lib的文件夹的路径Linker的其他图书馆目录 - >将军。



我的问题是:

1.我错过了添加ws2_32的任何内容.lib解决未解决的问题?

2.我发现很多文件夹包含ws2_32.lib,如下所示,我应该选择哪一个?目前,我选择了

 C:\Program Files(x86)\ Mysoftoft SDKs \ Windows \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ $ b 

 C:\Program Files(x86)\ microsoftoft SDKs \ Windows \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ (x86)\ MySoftoft SDKs\Windows\v7.1A\Lib\x64 
C:\Program Files(x86)\ Windows Wits\10\Lib\10.0.10240.0\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ x86)\ Windows Kits \10\Lib\10.0.10240.0\um\x64
C:\Program Files(x86)\ Windows Wits\10\Lib\10.0。 10240.0 \\\ x86
C:\程序文件(x86)\ Windows Wits \\\\\\\\\\\\\\\\\\\\文件(x86)\ Windows Kits \10\Lib\10.0.10586.0\um\arm64
C:\ Program Files(x86)\ Windows Wits \ \\\ Lib \10.0.10586.0 \\\ x64
C:\程序文件(x86)\ Windows Wits \\\\\\\
C:\Program Files(x86)\ Windows Kits \8.0 \Lib\win8 \\\\ x64
C:\Program Files(x86)\ Windows's Kits \\ \\ 8..0 \Lib \ win8 \\\ x86
C:\程序文件(x86)\ Windows Wits \8.1 \Lib \ winv6.3 \\\\arm
C:\Program Files(x86)\ Windows Kits \8.1 \Lib\winv6.3 \\\\ x64
C:\ Program Files(x86)\ Windows Wits \\ 8..1 \Lib\winv6.3 \\\ x86
C:\程序文件(x86)\ Windows电话套件\8.0 \lib\ARM
C:\\ \\程序文件(x86)\ Windows电话套件\8.0 \lib \ x86





我尝试了什么:



我尝试过在网络上找到的方法,但问题仍然存在。

解决方案

我将库目录从

 C:\Program Files(x86)\ Mysrosoft SDKs \ Windows \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ p $ p> C:\Program Files(x86)\ Microsoft SDKs \ Windows \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BR /> 

I've got error message like

1>dsim.obj : error LNK2019: unresolved external symbol __imp__htonl@4 referenced in function "unsigned short __cdecl AddEthCard(unsigned int,unsigned char *,char *,struct pcap *)" (?AddEthCard@@YAGIPAEPADPAUpcap@@@Z)
1>dsim.obj : error LNK2019: unresolved external symbol __imp__ntohl@4 referenced in function "void __cdecl HandleIGMPMsg(struct ethcard *,struct pcap_pkthdr *,unsigned char *)" (?HandleIGMPMsg@@YAXPAUethcard@@PAUpcap_pkthdr@@PAE@Z)
1>dsim.obj : error LNK2019: unresolved external symbol __imp__ntohs@4 referenced in function "void __cdecl HandleARPMsg(struct ethcard *,unsigned char *)" (?HandleARPMsg@@YAXPAUethcard@@PAE@Z)



I found message about it and know that it needs to link ws2_32.lib. What I did is:
1. Added ws2_32.lib to "Additional Dependencies" in Linker->Input.
2. Added path of folder containing ws2_32.lib into "Additional Library Directories" at Linker->General.

My questions are:
1. Anything I missed to do for adding ws2_32.lib to resolve the unresolved issues?
2. I found lots of folders containing ws2_32.lib as below, which one should I choose? Currently, I chose

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64



C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\arm
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\arm64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\arm
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\arm64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\x86
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\arm
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86
C:\Program Files (x86)\Windows Phone Kits\8.0\lib\ARM
C:\Program Files (x86)\Windows Phone Kits\8.0\lib\x86



What I have tried:

I tried ways which I found at networks but problem remains.

解决方案

I changed library directory from

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64

to

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib

, all such kinds of linking errors were gone.


这篇关于如何链接包含htonl,ntohl和amp;的库在VC ++ 2017中的ntohs?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆