【发布时间】:2010-11-20 09:26:14
【问题描述】:
很抱歉必须为此创建一个新线程,但我从 winsock 开始,并一直遵循 madwizard 和 beej 指南,以及有关 msdn 的一些信息。我被卡住了,我似乎无法编译以下内容(是的......大开始......我知道......:P)
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main(void){
const int iReqWinsockVer = 2; //
WSADATA wsadata;
if (WSAStartup(MAKEWORD(iReqWinsockVer,0), &wsadata) == 0 ){
if (LOBYTE(wsadata.wVersion) >= iReqWinsockVer){
}
else{
cout<<" Required version Not available..." << endl;
}
if (WSACleanup()!=0){
cout<<"Clean up failed!..." << endl;
}
}
else{
cout<<"Startup faled!..." << endl;
}
return 0;
}
我收到以下错误
C:\DOCUME~1\rs\LOCALS~1\Temp/ccygafwl.o:sock.cpp:(.text+0x14a): undefined reference to `WSAStartup@8'
C:\DOCUME~1\rs\LOCALS~1\Temp/ccygafwl.o:sock.cpp:(.text+0x186): undefined reference to `WSACleanup@0'
collect2: ld returned 1 exit status
我正在使用 GCC 并通过命令行进行编译,有什么我必须链接的吗?。
-谢谢。
【问题讨论】:
-
我认为
-lws2有效。不过是在拉长我的记忆。 -
你的意思是你通过 Cygwin 使用 Mingw 或 GCC?为什么不直接使用免费的 Visual Studio Express Edition for Windows 特定代码?
-
Mingw,我目前正在尝试避免使用 Visual Studio,我真的不知道如何使用它,而且我不认为像这样简单的东西真的需要这样的 IDE :)。还在学习中。
标签: c++ gcc compiler-errors winsock