链接器使用wininet与Mingw-w64编译c-source错误



我在windows上编译c-source有问题。我使用wininet的函数,得到了一个链接错误。
我使用的是g++.exe (i686-posix-dwarf-rev0,由MinGW-W64项目构建)8.1.0

示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <wininet.h>

int main (int argc, char **argv) 
{
InternetOpen("WebReader", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 ); 
return 0;
}

有错误的编译语句

"C:Program Files (x86)mingw-w64i686-8.1.0-posix-dwarf-rt_v6-rev0mingw32bing++.exe" -lwininet -g test.c -o test.exe
C:UserspeterAppDataLocalTempccfXocKI.o: In function `main':
D:sourcemingwShellHost/test.c:9: undefined reference to `_imp__InternetOpenA@20'
collect2.exe: error: ld returned 1 exit status

有人能帮忙吗?

您应该像InternetOpenA文档所说的那样与Wininet.lib链接(参见需求部分)。

我知道这是两年前的事了,但我想扩展一下nevilad的回答,以帮助将来的人:

正如nevilad所说,添加Wininet库作为额外的依赖项应该解决这个问题。

在Visual studio IDE…项目比;性能比;配置属性>链接器在输入在附加依赖>添加"Wininet.lib"到列表

最新更新