我似乎无法在 Cygwin 1.7.11 中构建 perl 5.6.2。
到目前为止,这是我要遵循的步骤。
从网站下载 perl 5.6.2 源代码并解压到某个文件夹“perl-5.6.2”
cd perl-5.6.2/bld
sh ../Configure -des -Dmksymlinks -Dprefix=/common/ndd/perl/5.6.2 -DDEBUGGING 2>&1
make 2>&1
make install 2>&1
以下是其中的日志:
发生的事情是 make 创建“perl-5.6.2/bld/perl.exe”,并且该文件每次都会生成一个中止信号。
这是在其上运行 gdb 的回溯。(注意:我配置了 -DDEBUGGING,所以应该启用所有 gcc 调试标志。)
(gdb) run
Starting program: /openlogic/build/work/perl-5.6.2/bld/perl.exe
[New Thread 3348.0xf54]
[New Thread 3348.0x48c]
Program received signal SIGABRT, Aborted.
0x00000000 in ?? ()
(gdb) backtrace
#0 0x00000000 in ?? ()
#1 0x7792f8b1 in ntdll!RtlUpdateClonedSRWLock ()
from /cygdrive/c/Windows/system32/ntdll.dll
#2 0x757f0a91 in WaitForSingleObjectEx ()
from /cygdrive/c/Windows/syswow64/KERNELBASE.dll
#3 0x000000a8 in ?? ()
#4 0x00000000 in ?? ()
(gdb) quit
这里 ldd.exe 命令在 perl.exe 上运行
$ ldd /ndipiazza/build/work/perl-5.6.2/bld/perl.exe
ntdll.dll => /cygdrive/c/Windows/SysWOW64/ntdll.dll (0x77910000)
kernel32.dll => /cygdrive/c/Windows/syswow64/kernel32.dll (0x75cb0000)
KERNELBASE.dll => /cygdrive/c/Windows/syswow64/KERNELBASE.dll (0x757e0000)
libperl5_6_2.dll => /ndipiazza/build/work/perl-5.6.2/bld/libperl5_6_2.dll (0x66140000)
cygcrypt-0.dll => /usr/bin/cygcrypt-0.dll (0x67db0000)
cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
??? => ??? (0x570000)
谁能明白为什么我会得到这个 sigabrt?
编辑:这是 Cygwin 邮件列表中正在进行的讨论的链接:http: //cygwin.com/ml/cygwin/2012-07/msg00368.html