【发布时间】:2011-04-19 16:40:24
【问题描述】:
我正在尝试在 Windows 中学习 Socket 编程,并且正在使用 cygwin。我发现所需的文件位于/usr/include/w32api/。
我从网上获取了一个示例程序并尝试编译但无法编译....相同的代码是
#include <w32api/windows.h>
#include <w32api/winsock.h>
#include <stdio.h>
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nShow)
{
WORD sockVersion;
WSADATA wsaData;
int nret;
sockVersion = MAKEWORD(1, 1); // We'd like Winsock version 1.1
// We begin by initializing Winsock
WSAStartup(sockVersion, &wsaData);
// rest part of code
}
我在 cygwin 环境中使用 gcc-3 编译它并得到非常奇怪的错误.....
undefined reference to '_WSAStartup08' and many such errors...
我从一个教程网站获取了代码,因此想知道我哪里错了,我应该如何运行程序。
非常感谢..
编辑 ---------
我也尝试过使用 winsock2 而不是 winsock.h,但错误仍然存在...
【问题讨论】:
-
顺便说一句,我认为这可能是因为没有链接 WS2_32.Lib 但我不确定在 cygwin 的哪里可以找到它....我试过 gcc socket.c -l libws2_32.a 但没有成功.....
-
如果你正在尝试学习 Windows 套接字,你选择 cygwin 的原因是什么?任何 VS20xx Express DE 的 Windows 套接字都非常可靠。为什么不是其中一种环境?