有没有办法将winsock lib从windows移动到ubuntu?

时间:2012-07-10 02:51:26

标签: ubuntu codeblocks winsock2

我使用server库在Windows 7中创建了一个winsock项目。但是,我的朋友希望在Ubuntu Code::Blocks框架中使用此项目。当我将项目移动到Ubuntu时,我意识到没有winsock库!所以,我想要一个建议在Ubuntu中使用winsock lib或者在ubuntu中运行我的项目。谢谢!

1 个答案:

答案 0 :(得分:1)

而不是与ws2_32库(windows上的winsock)链接,而是需要链接glibc,这在使用g ++ / gcc构建时总是这样做。

然而,您需要用#ifdef替换一些系统调用。 例如在linux上你有close()而不是closesocket(),ioctl()而不是ioctlsocket()等等。

尝试在代码中使用此块:

#if defined(__unix__)
typedef int SOCKET;
#define closesocket(i) close(i)
#define ioctlsocket(i,l,ul) ioctl(i,l,ul)
#endif

对于你的套接字,你需要使用typedef SOCKET。