VS2005中添加lib文件的方法

在网络编程中用到了socket相关的函数,包括send(),recv(),connect(),htons()函数。经过编译出现了如下的错误提示:

error LNK2019: 无法解析的外部符号 __imp__closesocket@4,该符号在函数 _wmain 中被引用
error LNK2019: 无法解析的外部符号 __imp__send@16,该符号在函数 _wmain 中被引用
error LNK2019: 无法解析的外部符号 __imp__recv@16,该符号在函数 _wmain 中被引用
error LNK2019: 无法解析的外部符号 __imp__connect@12,该符号在函数 _wmain 中被引用
error LNK2019: 无法解析的外部符号 __imp__htons@4,该符号在函数 _wmain 中被引用
error LNK2019: 无法解析的外部符号 __imp__inet_addr@4,该符号在函数 _wmain 中被引用
error LNK2019: 无法解析的外部符号 __imp__socket@12,该符号在函数 _wmain 中被引用
error LNK2019: 无法解析的外部符号 __imp__WSACleanup@0,该符号在函数 _wmain 中被引用
error LNK2019: 无法解析的外部符号 __imp__WSAStartup@8,该符号在函数 _wmain 中被引用


原因是连接器没有找到函数符号表,这些函数是以动态链接库的形式提供给我们的,我们需要为程序链接ws2_32.lib文件,链接方法有两个。


方法一:



方法二:

在头文件中添加这样的一句话,在cpp文件中添加没有效果:

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


经过上述方法我们的程序就链接正常了,我们一般推荐使用方法二,这样就可以避免每个编译器都去添加lib文件了


posted @ 2017-03-04 18:06  小怪兽&奥特曼  阅读(194)  评论(0编辑  收藏  举报