0

添加#define _WINSOCKAPI_但仍然构建失败。

/*
 * $PostgreSQL: pgsql/src/include/port/win32/sys/socket.h,v 1.7 2006/10/04 00:30:10 momjian Exp $
 */
#ifndef WIN32_SYS_SOCKET_H
#define WIN32_SYS_SOCKET_H

/*
 * Unfortunately, <wingdi.h> of VC++ also defines ERROR.
 * To avoid the conflict, we include <windows.h> here and undefine ERROR
 * immediately.
 *
 * Note: Don't include <wingdi.h> directly.  It causes compile errors.
 */
#define _WINSOCKAPI_    //added this line but no help
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>

#undef ERROR
#undef small

/* Restore old ERROR value */
#ifdef PGERROR
#define ERROR PGERROR
#endif

/*
 * we can't use the windows gai_strerror{AW} functions because
 * they are defined inline in the MS header files. So we'll use our
 * own
 */
#undef gai_strerror

#endif   /* WIN32_SYS_SOCKET_H */
4

2 回答 2

1

您正在尝试在绝对不是 Windows 的平台上编译特定于 Windows 的头文件。我无法想象你期望这会做什么;然而,不管它是什么,它都不是。

于 2012-03-08T20:00:09.447 回答
0

尝试使用

#ifndef __APPLE__ ... #endif

然后,检查其他编译错误并包含苹果特定的套接字文件,这些文件也可以在 BSD 套接字下工作。

于 2012-03-08T20:07:14.313 回答