制造can';找不到sys/signal.h

制造can';找不到sys/signal.h,c,makefile,mingw,configure,m4,C,Makefile,Mingw,Configure,M4,我正试图在MINGW中安装m4 在/configure正常结束后,我尝试了make,但出现了错误 make[1]: Entering directory `/c/src/autotools/build_m4/src' gcc -c -DHAVE_CONFIG_H -I.. -I../../m4-1.4/src -I../../m4-1.4/src/../lib -g -O ../../m4-1.4/src/m4.c ../../m4-1.4/src/m4.c:22:24: fatal erro

我正试图在MINGW中安装
m4

/configure
正常结束后,我尝试了
make
,但出现了错误

make[1]: Entering directory `/c/src/autotools/build_m4/src'
gcc -c -DHAVE_CONFIG_H -I.. -I../../m4-1.4/src -I../../m4-1.4/src/../lib  -g -O
../../m4-1.4/src/m4.c
../../m4-1.4/src/m4.c:22:24: fatal error: sys/signal.h: No such file or director
y
 #include <sys/signal.h>
                        ^
compilation terminated.
make[1]: *** [m4.o] Error 1
make[1]: Leaving directory `/c/src/autotools/build_m4/src'
make: *** [all] Error 1
make[1]:进入目录“/c/src/autotools/build\u m4/src”
gcc-c-DHAVE_配置_H-I-I.././m4-1.4/src-I.././m4-1.4/src/./lib-g-O
../../m4-1.4/src/m4.c
../../m4-1.4/src/m4.c:22:24:致命错误:sys/signal.h:没有这样的文件或控制器
Y
#包括
^
编译终止。
生成[1]:***[m4.o]错误1
make[1]:离开目录“/c/src/autotools/build\u m4/src”
make:**[all]错误1
signal.h
位于路径环境中设置的
\c\mingw\include


如何判断
make
信号.h在哪里?

将注释转换为答案:


在大多数Unix系统上,文件
/usr/include/signal.h
包含
\include
。似乎
m4
假设将有一个
——假设没有
自动确认它是否存在。这可能是m4的(配置过程)中的错误,也可能是您的设置有问题

你以前能编译其他GNU程序吗?是否有目录
/c/mingw/include/sys
(或
\c\mingw\include\sys
)?如果没有,您可以通过在
\c\mingw\include
(如果缺少)中创建
sys
子目录并将
signal.h
复制到其中来开始。但这是一个可能的bug的黑客解决方法

如果这是有效的-就像它看起来-检查您的MinGW安装是否正确和最新。如果是,请向的维护人员报告问题(电子邮件
bug-m4
at
gnu.org
),但请查看网站以了解如何执行此操作的说明


考虑删除复制的
信号.h
,因为它原来不在那里。OTOH,将来您可能还会需要它-但就个人而言,如果安装正常处于原始状态,并且只有在绝对必要时才进行黑客攻击,我会感到更高兴。

在大多数Unix系统上,文件
/usr/include/signal.h
包含
\include
。似乎
m4
假设将有一个
——假设没有
自动确认它是否存在。这可能是
m4
中的错误,也可能是您的设置有问题。你以前能编译程序吗?是否有目录
/c/mingw/include/sys
(或等效反斜杠)?如果没有,您可以创建
sys
子目录(如果缺少)并将
signal.h
复制到其中。但是这是一个可能的bug的黑客解决方法。
make
不关心这个包含文件。它是编译器。将适当的密码传递给GCC。@JonathanLeffler mingw not\any\path\with\backslahes不是Linux。是的,@harper,我知道mingw是Windows的最小GNU。我相信,它的目的是提供一个环境,让源于Unix的程序可以在其中编译和运行。它并不是Unix或Linux的完全复制品,但我相信,它的目的是使从Unix或Linux到Windows的代码移植相对容易,如果它是自动配置的话。要构建
m4
,需要使用自动配置的
configure
shell脚本。它应该检测MinGW并做出适当的响应。或者,改用Cygwin;正如@Jonathan Leffler所说,我将
signal.h
复制到
sys
,然后
make
正常运行并完成。