我正在尝试学习Windows中的套接字编程,并使用cygwin进行同样的编程。我发现所需的文件在/usr/include/w32api/上。
我从net上取了一个示例程序,并试图编译,但无法做到……相同的代码是
#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,但是错误仍然存在……
发布于 2011-04-20 03:45:08
-lws2_32应该做到这一点。
然而,Cygwin在winsock之上有它自己的POSIX兼容套接字实现,通常情况下混合起来不是一个好主意。如果你想坚持使用winsock,你可能想要使用gcc-3的-mno-cygwin选项,它将Cygwin DLL从等式中去掉。(您还需要从#include行中删除w32api/。)
https://stackoverflow.com/questions/5719727
复制相似问题