【发布时间】:2017-04-07 16:31:17
【问题描述】:
我正在使用 QT Creator 构建一个纯 C 项目。我的项目包含一个套接字创建,但我遇到了很多参考错误。
我的代码很简单:
#include <winsock2.h>
#include <stdio.h>
// Need to link with Ws2_32.lib
#pragma comment (lib, "Ws2_32.lib")
int main(int argc , char *argv[])
{
WSADATA wsa;
SOCKET s;
printf("\nInitialising Winsock...");
if (WSAStartup(MAKEWORD(2,2),&wsa) != 0)
{
printf("Failed. Error Code : %d",WSAGetLastError());
return 1;
}
printf("Initialised.\n");
if((s = socket(AF_INET , SOCK_STREAM , 0 )) == INVALID_SOCKET)
{
printf("Could not create socket : %d" , WSAGetLastError());
}
printf("Socket created.\n");
return 0;
}
编译错误:
undefined reference to `_imp__WSAStartup@8'
undefined reference to `_imp__WSAGetLastError@0'
undefined reference to `_imp__socket@12'
undefined reference to `_imp__WSAGetLastError@0'
那么我想这意味着winsock2.h lib 不包括在内。没有#pragma comment()怎么办?
【问题讨论】:
-
@a3f 感谢提醒!我刚刚检查了答案,它现在正在工作