Ich verwende macOS Sierra 10.12.1 (16B2555) mit installiertem Xcode 8.1 und Befehlszeilentools, aber ich kann keine nativen Node.js-Add-Ons installieren, ich kann Python nicht kompilieren usw.
Ich habe versucht, Xcode und die Befehlszeilentools (letzteres über das Entfernen von /Library/Developer/CommandLineTools
) zu entfernen und dann Xcode aus dem App Store und den Befehlszeilentools über neu zu installieren, xcode-select --install
aber das Problem ist immer noch da. Folgendes passiert beispielsweise, wenn ich versuche, das contextify
npm-Paket auf Node.js 7.2.0 oder 6.9.1 zu installieren:
$ npm install contextify
> contextify@0.1.15 install /Users/mgol/_/node_modules/contextify
> node-gyp rebuild
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
CXX(target) Release/obj.target/contextify/src/contextify.o
make: ccache: No such file or directory
make: *** [Release/obj.target/contextify/src/contextify.o] Error 1
gyp ERR! build error
Es funktioniert gut auf dem Computer eines Kollegen mit demselben Betriebssystem.
Ich sehe manchmal, dass der App Store mich über ein Upgrade der Befehlszeilentools für Xcode 7.3 benachrichtigt, das anscheinend deaktiviert ist. Vielleicht hat mein Setup etwas vom alten Xcode übrig?
Irgendwelche Ideen? Ich fühle mich verloren in dem, was ich sonst noch versuchen kann.
Aus Ihrem Protokoll geht hervor, dass der Build-Prozess erwartet, dass Ccache installiert wird. Verwenden Sie je nach Ihren Vorlieben entweder Homebrew oder MacPorts, um Ccache zu installieren, und versuchen Sie dann den Build erneut.
Möglicherweise möchten Sie die Xcode-Lizenz akzeptieren:
Im Terminal als sudo-Benutzer ausführen:
sudo xcodebuild -license
mgol
brew install ccache
das Problem wurde behoben), aber meine anderen Kollegen mussten es nicht auf ihren Computern tun und es funktionierte immer noch für sie, also verstehe ich das Problem immer noch nicht ganz ...