我似乎无法在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
Run Code Online (Sandbox Code Playgroud)
以下是此日志:
发生的事情是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
Run Code Online (Sandbox Code Playgroud)
这里id是在perl.exe上运行的ldd.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)
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到为什么我会得到这个sigabrt?
编辑:这是Cygwin邮件列表中正在进行的讨论的链接:http://cygwin.com/ml/cygwin/2012-07/msg00368.html