Bei der Ausführung python
in Cygwin wird folgende Fehlermeldung angezeigt:
0 [main] python 6140 C:\cygwin\bin\python.exe: *** fatal error - unable to remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as parent: 0x2B0000 != 0x360000
Stack trace:
Frame Function Args
00288E68 6102749B (00288E68, 00000000, 00000000, 00000000)
00289158 6102749B (61177B80, 00008000, 00000000, 61179977)
0028A188 61004AFB (611A136C, 6124112C, 002B0000, 00360000)
End of stack trace
0 [main] python 9048 fork: child 6140 - died waiting for dll loading, errno 11
abort: Resource temporarily unavailable
Was bedeutet es und was soll ich tun, um es zu beheben?
Dies bedeutet, dass entweder ein Programm eines Drittanbieters wie ein Virenscanner oder die in Vista eingeführte Funktion zur Zufallsgenerierung von DLL-Adressen Ihren Prozess derart gestört haben, dass er nicht erfolgreich gegabelt werden konnte.
Mit dem
rebaseall
Dienstprogramm können DLLs so festgelegt werden, dass das Problem vermieden wird. Es ist standardmäßig installiert. Sehen Sierebaseall --help
, wie es zu benutzen, und/usr/share/doc/Cygwin/rebase-3.0.1.README
für weitere Details. Wenn es nicht hilft,peflagsall
lohnt sich ein weiterer Versuch.quelle
Ich hatte das gleiche Problem, nachdem ich "numpy" kompiliert hatte. Die betroffene DLL war mtrand.dll. Einfach
funktioniert nicht.
Folgendes hat geholfen: Überprüfen Sie, ob die betroffene DLL (in diesem Fall time.dll) tatsächlich "rebasiert" ist:
Wenn nicht, erstellen Sie eine Liste, die den vollständigen Pfad der betroffenen DLL enthält. Z.B:
Die Datei kann auch mehrere DLLs enthalten, eine pro Zeile. Dann ruf an
Wie oben beschrieben, wird kein anderes Cygwin-Zeug ausgeführt. Die time.dll sollte nun umbasiert werden (zusätzlich zum "normalen" rebaseall).
(Seltsam: In 10 Jahren mit cygwin unter nt, windows2000, xp musste ich nur einmal "rebase". In einem Tag mit (64-Bit) window-7 war dies bereits notwendig.)
quelle
Es gibt eine Antwort auf das Problem.
Quelle: https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows)
Es ist nicht möglich, dieselbe Adresse wie die übergeordnete Adresse erneut zuzuordnen
Dies ist auch bei node.js kein Problem. Installieren Sie base → rebase zuerst mit setup.exe und schließen Sie dann alle Cygwin-Instanzen. Starten Sie dash oder ash (im bin-Verzeichnis unter Cygwins Installation) und führen Sie Folgendes aus:
Es sollte ohne Fehler enden. Wenn stattdessen der obige Fehler wie folgt auftritt:
Öffnen Sie eine Cygwin-Shell und führen Sie Folgendes aus:
Schließen Sie Ihr Shell-Fenster und wiederholen Sie die obigen Schritte. Sobald Sie fertig sind, starten Sie Ihren PC neu. Denken Sie daran, alle offenen Cygwin-Shells zu schließen, bevor Sie rebaseall verwenden.
quelle