如何制作跨平台库?

How to make a cross platform Library?

我试图在 Linux 上使用 sys/socket.h 创建一个 HTTP 服务器。我想知道如何在不使用第 3 方库的情况下制作跨平台 HTTP 服务器。我只想使用本机套接字 API'S。如何根据底层操作系统编译加载特定 header 的库。就像在 windows 上加载 windows.h 和在 Linux.

上加载 sys/system.h

'traditional'方法是使用#ifdef宏,你可以select在编译时包含哪个h文件,像这样:

#ifdef LINUX
    #include <sys/platform.h>
#else
    #include <windows.h>
#endif

然后你可以让编译器使用-D选项定义正确的宏,比如-DLINUX.

但是当 API 开始出现如此微小的差异时,这会让您很痛苦。

使用 boost 库!这些设计为独立于平台。