标签: interix

C++:Interix信号

如何在Interix平台上编译 /使用信号?我无法将其编译,因为Interix似乎与非POSIX兼容,至少在其实现中是这样.signal.h

如果有人找到了一种方法来解决这个问题,并允许代码在Interix上编译信号,请告诉我如何!

谢谢.


细节:

C,C++中的传统软件,基于Linux和Interix构建(适用于Win XP).

在编译期间,仅在Interix上出现以下错误; 在添加pthreadsignal代码之后,不在Linux上.pthreads由于与Xmotif冲突(编译但在运行时崩溃),因此无法在没有信号的情况下使用.

结构差异引起的错误:

`struct siginfo' has no member named `si_value'
aggregate `sigval val' has incomplete type and cannot be defined
`struct sigaction' has no member named `sa_sigaction'
Run Code Online (Sandbox Code Playgroud)

未申报的错误:

`sigqueue' undeclared
`SA_NODEFER' undeclared
`SA_SIGINFO' undeclared
Run Code Online (Sandbox Code Playgroud)

咨询的其他材料:

http://www.mail-archive.com/bug-gnulib@gnu.org/msg10425.html
http://www.gnu.org/software/hello/manual/gnulib/signal_002eh.html
HTTP:// EN. wikipedia.org/wiki/Interix
http://www.opengroup.org/susv3xbd/signal.h.html

c++ posix signals compiler-errors interix

11
推荐指数
1
解决办法
1274
查看次数

stddef.h:错误:重复'unsigned'

我正在grep为Windows 7 x64 SUA/Interix编译64位GCC编译器.

它在标记线上窒息stddef.h:

#ifndef _SIZE_T_DEFINED
#if defined (lp64) || defined(_WIN64)
#ifdef lp64
typedef unsigned long   size_t;                    //    <------ error
#else /* lp64 */
typedef unsigned __int64        size_t;
#endif /* lp64 */
#else /* (defined(lp64) || defined(_WIN64)) */
typedef unsigned int  size_t;
#endif /* (defined(lp64) || defined(_WIN64)) */
#define _SIZE_T_DEFINED
#define _SIZE_T
#endif /* _SIZE_T_DEFINED */
Run Code Online (Sandbox Code Playgroud)

输出make是:

make  all-recursive
Making all in intl
gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale\"  -DLIBDIR=\"/usr/local/lib\" -DIN_LIBINTL -DHAVE_CONFIG_H -I.. -I. -I../../intl …
Run Code Online (Sandbox Code Playgroud)

c windows gcc sua interix

8
推荐指数
1
解决办法
6746
查看次数

Interix是否实现了fork()?

Unix for Windows Porting Dictionary for HPC page for fork()中写了

Unix fork()或vfork()没有等效的Windows API.基于Unix的应用程序的Microsoft子系统(SUA或Interix)是一个正确实现fork()和vfork()的Unix环境.

在页面上还有一些示例源代码,它使用...标准的Win32 API CreateProcess函数.

我糊涂了.
该示例是否应该使用fork()来说明由SUA/Interix实现的fork()语句?
如果fork()真正实现了它所居住的头文件和lib文件?

linux windows posix fork interix

7
推荐指数
1
解决办法
3174
查看次数

标签 统计

interix ×3

posix ×2

windows ×2

c ×1

c++ ×1

compiler-errors ×1

fork ×1

gcc ×1

linux ×1

signals ×1

sua ×1