';SIGPIPE';:luasocket-2.0.2中未声明的标识符

';SIGPIPE';:luasocket-2.0.2中未声明的标识符,c,lua,luasocket,C,Lua,Luasocket,我正在尝试编译(或:),但在尝试编译时,有些宏似乎未定义。即: 标识符“SIGPIPE”未定义 标识符“F_GETFL”未定义 标识符“O_非块”未定义 标识符“F_SETFL”未定义 如果我用谷歌搜索这个,我会看到这个信号。h必须包含在内。我没有更改代码或任何内容,正如您所料,标题包括: #include <string.h> #include <signal.h> #include "socket.h" 错误发生在socket项目的usocket.c中: “S

我正在尝试编译(或:),但在尝试编译时,有些宏似乎未定义。即:

标识符“SIGPIPE”未定义
标识符“F_GETFL”未定义
标识符“O_非块”未定义
标识符“F_SETFL”未定义
如果我用谷歌搜索这个,我会看到这个信号。h必须包含在内。我没有更改代码或任何内容,正如您所料,标题包括:

#include <string.h> 
#include <signal.h>

#include "socket.h"
错误发生在socket项目的usocket.c中:

“SIGPIPE”是未定义的套接字e:\git\luasocket-2.0.2\src\usocket.c 80
... 

好的,它在编译标志中。我不能从这里查看您的系统,但是
/I
标志是它发生的地方,问题是
signal.h
不在这些目录中


这可能是软件包本身的某种缺陷。将此报告给开发人员,同时找到
signal.h
,并将其复制到其中一个include目录中作为解决方法。

似乎
usocket.c
是Unix特定的源代码

/*=========================================================================*\
* Socket compatibilization module for Unix
* LuaSocket toolkit
您不应该尝试将其包含到Win目标构建中(除非您使用的是Cygwin)。另外,
socket.vcxproj
在源集中没有提到这个文件。这证实了先前的建议

如果您决定通过
win32.cmd
script构建它,请更正前缀的路径,因为脚本使用硬编码的路径:

make LUAPREFIX_win32='c:\cygwin\home\diego\vc12' LUAV=5.1 PLAT=win32 LUALIBNAME_win32=lualib.lib PLATFORM_win32=Debug install-both

更详细地描述你的问题。您试图以什么方式构建它、使用的编译器标志、确切的错误消息以及源文件名等@Sergio我已经添加了请求的信息。如果还有更多我可以添加的,请让我知道。如果一些请求的头丢失-构建过程会更早停止,错误消息会告诉我丢失的头,而不是未声明的标识符。