我在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"到列表