当我使用MinGW make的unix实用程序时,我得到一个StackDump文件:
错误:
sed -i -e 's/reveal.js\/css\/theme\/simple.css/reveal.js\/css\/theme\/moon.css/' index.html
0 [main] sed 8744 open_stackdumpfile: Dumping stack trace to sed.exe.stackdump
make: *** [index.html] Error 5
sed.exe.stackdump:
MSYS-1.0.12 Build:2012-07-05 14:56
Exception: STATUS_ACCESS_VIOLATION at eip=68008DAA
eax=03019001 ebx=60EA4124 ecx=00692788 edx=00000150 esi=00000000 edi=60EA00D4
ebp=0028FE9C esp=0028FE78 program=c:\Program Files (x86)\Git\bin\sed.exe
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
0028FE9C 68008DAA (60EA00D4, 00000150, 0028FEEC, 680044EA)
0028FEEC 6800466B (00000000, 00000000, 0028FF2C, 00517CF8)
0028FF0C 68004C5F (00401C28, 00000000, 5C952BA0, FFFFE001)
0028FF2C 68004C98 (00000000, 00000000, 928A67BF, FFFFF800)
0028FF5C 00517C08 (00401C28, FFFFE001, 00000001, 00000000)
0028FF8C 0040103D (7FFDE000, 0028FFDC, 771F0BBB, 7FFDE000)
0028FF98 74F6919F (7FFDE000, 99B8EAFE, 00000000, 00000000)
0028FFDC 771F0BBB (FFFFFFFF, 771DC9D0, 00000000, 00000000)
0028FFEC 771F0B91 (00401000, 7FFDE000, 00000000, 78746341)
End of stack trace
尝试使用rm
,mv
和cp
等工具时出现非常类似的错误。我该怎么做才能解决这些错误?它使得在Windows上进行开发变得不可能。
我使用的make二进制文件位于C:\MinGW\msys\1.0\bin\make.exe
,版本信息为:
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i686-pc-msys
答案 0 :(得分:2)
我猜你的问题是sed
的msysgit版本使用C:\MinGW\msys\1.0\bin
中的MSYS DLL版本而不是c:\Program Files (x86)\Git\bin
中的DLL。尝试更改PATH
,以便makefile使用sed
中的C:\MinGW\msys\1.0\bin
,而不是msysgit版本。
答案 1 :(得分:1)
我发现了这个问题。我实际上使用的是MSYS版本的make,但sed
二进制文件是随cmder一起提供的。这种不匹配导致了堆栈转换。我修好了路径,现在工作正常。