C++使用InternetCheckConnection检测网络出现undefined reference错误如何解决
问题解决方案
错误原因
你的报错属于链接阶段符号未找到问题:
你使用的是MinGW系列GCC编译器(报错信息中的collect2.exe是GCC链接器的特征),而代码里的#pragma comment(lib,"Wininet.lib")是微软MSVC编译器专属的自动加载导入库指令,GCC不识别该指令,因此链接时没有加载Wininet库,找不到InternetCheckConnection的实现符号。
解决方法
1. 命令行编译场景
在编译指令末尾添加-lwininet参数即可,示例指令:
g++ 你的源代码文件名.cpp -o 输出程序名.exe -lwininet
注意:参数是小写L开头,后接wininet,不需要加lib前缀或.lib后缀。
2. IDE编译场景
- 如果你用Dev-C++:依次点击顶部菜单栏「工具」->「编译选项」,在「编译时加入以下命令」输入框中添加
-lwininet,点击确定后重新编译即可。 - 如果你用Code::Blocks:依次点击顶部菜单栏「项目」->「构建选项」->「链接器设置」,点击添加输入
wininet确认即可,也可以直接在「其他链接器选项」中填入-lwininet。
额外代码修正提示
你的代码中URL的分隔符写反了,应把http:\\www.google.com改为http://www.google.com,该问题不影响当前编译错误的解决,但会导致后续功能运行结果不正确。
内容的提问来源于stack exchange,提问作者user15637411
相关产品推荐
相关产品推荐

