gpt4 book ai didi

c - 'SIGPIPE' : undeclared identifier in luasocket-2. 0.2

转载 作者:行者123 更新时间:2023-12-01 01:26:32 28 4
gpt4 key购买 nike

我正在尝试编译 luasocket-2.0.2 (或:luasocket)但当我尝试这样做时,一些宏似乎未定义。即:

identifier "SIGPIPE" is undefined
identifier "F_GETFL" is undefined
identifier "O_NONBLOCK" is undefined
identifier "F_SETFL" is undefined

如果我用谷歌搜索,我会看到必须为此包含 signal.h。我没有更改代码或任何内容,如您所料,包含 header :

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

#include "socket.h"

不太确定我在这里遗漏了什么。

我尝试为 Windows 编译它。

编译器标志:

/GS /analyze- /W3 /Zc:wchar_t /I"E:\git\luasocket-2.0.2\../luaext-linker/include" /ZI /Gm /Od /Fd"mime\Debug\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "MIME_EXPORTS" /D "MIME_API=__declspec(dllexport)" /D "_WINDLL" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"mime\Debug\" /EHsc /nologo /Fo"mime\Debug\" /Fp"mime\Debug\mime.pch" 

错误发生在socket工程的usocket.c:

"SIGPIPE" is undefined  socket  e:\git\luasocket-2.0.2\src\usocket.c    80
...

最佳答案

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

/*=========================================================================*\
* Socket compatibilization module for Unix
* LuaSocket toolkit

您不应该尝试将其包含在以 Win 为目标的构建中(除非您使用的是 Cygwin)。此外,socket.vcxproj 没有在源集中提及此文件。这证实了之前的建议。

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

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

关于c - 'SIGPIPE' : undeclared identifier in luasocket-2. 0.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41200584/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com