用visual studio 2017版本新建了一个项目,输入如下Windows网络编程程序,出现了编译器错误,内容如下:
错误 “error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用”
怎么解决呢?
最简单有效的方法,直接在相应头文件的下方添加一句编译器指令,别的什么操作也就不用管了:
#pragma comment(lib,"ws2_32.lib")
如果不想添加这句代码,当然也可以在项目属性里面添加项目依赖项,如图所示:
项目属性--->链接器---->输入---->附加依赖项---->在最前面添加“ws2_32.lib”
原理:
编写程序的时候,编译器没有报错。但是在编译的过程中,出现了连接错误,无法识别调用的函数。那么根源很有可能就是,编译器没有链接到我们想要的头文件运行库。所以,我们只需要让编译器链接到头文件<winsock.h>的运行库就可以了。(编程萌新,理解有限,可能不太准)
#pragam 编译器指令,指示编译器链接到<winsock.h>的库文件ws2_32.lib,即#pragma comment(lib,"ws2_32.lib")。
关于pragam编译器指令的用法,大家有兴趣可以网上搜集看看。本人编程萌新,这里就不多讲了。
最后重新编译一下,程序就可以正常运行了。