我有一个项目,我从qt 4移植到qt 5.我收到标题中提到的错误。我已经包含了头文件(signal.h)。以下是代码。
signal(SIGPIPE,SIG_IGN);
我在互联网上搜索过但找不到任何出错的原因。还要注意,如果我将SIGINT放在SIGPIPE的位置,那么我不会收到任何错误。
感谢任何帮助。
Windows 10上的Qt 5.7版
答案 0 :(得分:0)
Microsoft Windows page for "signal"(截至其编辑日期至少为2月20日),在其备注部分中,表示“sig”参数(SIGPIPE
)必须是其中一个常量上市。但是,未列出SIGPIPE
。
看起来您不仅尝试在不同的Qt版本之间移植,而且您还尝试在类Unix操作系统(如Linux)和Windows操作系统之间移植。
要解决此问题,请执行以下操作之一:
SIGPIPE
处理代码(使用#ifdef SIGPIPE
预处理器命令之类的代码,从不支持{{1}的平台中排除SIGPIPE
代码}}),或SIGPIPE
的操作系统。顺便说一句,这似乎与Qt的信号(信号和插槽)机制无关(因为这个问题最初是用标记的)。