machen schlägt fehl, während der Installation von Valgrind
Ich versuche zu installieren Valgrind auf einem Mac mit Snow Leopard, aber erhalte eine Fehlermeldung. Dies ist, was ich Schreibe in Terminal.
$ curl -O http://valgrind.org/downloads/valgrind-3.8.1.tar.bz2
$ md5sum valgrind-3.8.1.tar.bz2
$ tar -xjvf valgrind-3.8.1.tar.bz2
$ cd valgrind-3.8.1
$ ./configure
$ make
Dies ist die Fehlermeldung, die ich bekomme.
Making all in coregrind
make[2]: *** No rule to make target `/usr/include/mach/mach_vm.defs', needed by `m_mach/mach_vmUser.c'. Stop.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Wie kann ich diesen Fehler beheben?
- Hast du Xcode installiert?
- Ich habe nicht mit Xcode, da es besonders schwierig ist, um für Snow Leopard.
- Siehe meine Antwort unten. Ich glaube, es wird lösen Ihr Problem.
- Der Endzustand dieses problem ist, erklärte in einem Kommentar unter @Volte Antwort.
- Volte, die Antwort wäre nicht das problem, das ich hatte.
- Ich verstehe, und es ist unmöglich zu reproduzieren, aber es löst die mine und das akzeptiert man nicht genug.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass Sie die Befehlszeilen-tools.
Der beste Weg, um valgrind richtig zusammengestellt ist der "xcode-select --install" - Befehl wie in der obigen Antwort.
Jedoch als sub-optimal hack, Sie können es kompiliert durch das herunterladen der folgenden Dateien aus OSX /mach-Quelle in /usr/include/mach (dieses Verzeichnis):
Es ist eine etwas dirty hack, aber es sollte erhalten Sie gehen, wenn Sie wirklich nicht wollen, zu downloaden/installieren Sie die große Xcode original-Dateien.
Offenbar zu kompilieren, die auf einem Macintosh, valgrind muss die Datei
/usr/include/mach/mach_vm.defs
anwesend zu sein. Während ich habe nicht in der Lage, um spezifische Verweise aufmach_vm.defs
als Teil von XCode speziell, es scheint, dass die meisten von den üblichen Inhalt/usr/include/mach
installiert werden, wenn XCode ist.Wenn aus irgendeinem Grund können Sie nicht installieren Sie XCode auf Ihrem Rechner haben, können Sie die meisten der Quell-Dateien für das jeweilige Verzeichnis, aus dieser Teil von apples open-source-website.
Seit der System-Integrität-Schutz-system wurde auf OSX, die user, auch nicht als root ändern kann
/usr
. So ändern Sie /usr/include/mach fügen Sie die notwendigen Dateien wird unmöglich. Die einzige alternative ist nun editieren Sie das makefile selbst.Makefile an die hand sollte sich beim
coregrind/Makefile
, und der mach Dateien sollten sich in der Nähe von/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/
(ersetzen MacOSX10.12.sdk mit der entsprechenden version von OSX).Sollte es ein symbol mit der Bezeichnung
am__append_17
definiert in Zeile 160 oder so (vielleicht auch anderswo für verschiedene Versionen).Sollte es etwa so Aussehen:
Ersetzen Sie jede Instanz von
/usr/include
mit/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/
, so dass es aussieht wie:Danach valgrind sollten kompilieren richtig