Libsass: Node-gyp g++ und libsass-Fehler

Erstellt am 14. Apr. 2016  ·  21Kommentare  ·  Quelle: sass/libsass

Ich habe die Anleitung zur Installation der Zurb Foundation befolgt, bin aber auf ein konsistentes Problem gestoßen.
$ npm install foundation-cli --global
ist aber erfolgreich
:foundation fivedoor$ gründung neu
bringt auf:

g++: error: unrecognized command line option '-stdlib=libc++'
make: *** [Release/obj.target/libsass/src/libsass/src/ast.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/fivedoor/Documents/development/zurb/foundation/test130416-2/node_modules/gulp-sass/node_modules/node-sass/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 10.8.0
gyp ERR! command "/usr/local/bin/node" "/Users/fivedoor/Documents/development/zurb/foundation/test130416-2/node_modules/gulp-sass/node_modules/node-sass/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /Users/fivedoor/Documents/development/zurb/foundation/test130416-2/node_modules/gulp-sass/node_modules/node-sass
gyp ERR! node -v v4.4.2
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok 
Build failed

Ich wurde im Node-Gyp-Problemforum darauf hingewiesen, dass es sich nicht um einen Node-Gyp-Fehler handelt, sondern möglicherweise um ein Libsass-Problem. Ich habe ähnliche Fehler in anderen Github-Beiträgen gesehen.

Um ehrlich zu sein, da ich ziemlich neu bei node bin, bin ich mir sicher, dass ich bei der Implementierung einiger der verschiedenen vorgeschlagenen Lösungen unfähig gewesen sein könnte.

Ich habe einiges ohne Freude ausprobiert:

  • vollständige Deinstallation/neue Installation des letzten Knotens & npm;
  • npm-Cache leeren; mit nvm installieren, brauen;
  • Aktualisieren von Git auf die neueste Version, die Snow Leopard unterstützt;
  • npm - optional install ;
  • Macports installiert und dann GCC und G++ aktualisiert;
  • .node-gyp-Ordner löschen und neu installieren;
  • Foundation-Cli deinstallieren und neu installieren.

Ich habe ein wachsendes Fehlerbehebungsprotokoll geführt, während ich gehe. Das Neueste unter https://github.com/fivedoor/foundation-records/blob/master/my_installation_log_post_reinstall100416

Kann jemand sagen, ob ein Upgrade auf ein neueres Betriebssystem wahrscheinlich hilft oder nicht, wenn keine Wunderlösung verfügbar ist? (Ich weiß, dass Snow Leopard alt ist, aber ich habe mich aus Stabilitätsgründen daran gehalten.) Ich habe einige Warnungen von Brew erhalten, dass „Wir (und Apple) keine Unterstützung für OS 10.6 bieten.“

Das Frustrierende ist, dass ich in diesem Stadium nicht versuche, etwas „Fortgeschritteneres“ zu tun, als nur die Pakete zu installieren, die ich brauche, um loszulegen.

  • MACOS X-Version 10.6.8
  • npm 3.8.6
  • Knoten v4.4.2
  • Xcode 3.2.6
  • GCC 4.8.5
  • g++ 4.8.5
  • NVM 0.31.0
  • Git-Version 1.8.4.2
  • locken 7.19.7

Danke

Hilfreichster Kommentar

Nur um den Beitrag mit dem zu aktualisieren, was mich am Ende durchgebracht hat ...
Ich habe es versucht
brew install --with-clang llvm
aber clang --version gab immer noch Version 1.7 zurück

Ich habe dann folgendes probiert:

$ port search clang
$ sudo port install clang-3.6
$ port select --list clang
$ sudo port select --set clang mp-clang-3.6

Das schien es so zu tun
$ clang --version gab clang version 3.6.2 (tags/RELEASE_362/final) zurück

Ich habe dann die Pfade aktualisiert:

$ export CC=/opt/local/bin/clang
$ export CXX=/opt/local/bin/clang++

Diesmal wurde die Installation erfolgreich abgeschlossen :)

Vielen Dank für Ihre Hilfe und den Wegweiser in die richtige Richtung Saper - es war von unschätzbarem Wert!

Ein Nachwort -
Ich habe anscheinend viele Warnungen während der Installation erhalten.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

Ich habe einige Warnungen von Brew bezüglich der Unterstützung für 10.6.8 erhalten. und bevor das oben Gesagte funktionierte, war ich kurz davor, eine Version von El Capitan aufzugeben und zu installieren (um als partitioniertes Laufwerk zu laufen, damit ich Snow Leopard für andere Apps behalten kann)

Ich frage mich, ob das immer noch eine klügere Option für die Zukunft ist, da ich das Gefühl habe, dass ich auf mehr Probleme im Zusammenhang mit der Verwendung von Snow Leopard/einem älteren Betriebssystem stoßen könnte?

Trotzdem nochmals vielen Dank für die Unterstützung zu diesem Thema!

Alle 21 Kommentare

Dies gehört eigentlich zu https://github.com/sass/node-sass/issues , aber lassen Sie mich Sie zuerst fragen: Was passiert, wenn Sie clang anstelle von gcc verwenden?

Danke für deinen Input Saper.

Das ist alles ziemliches Neuland für mich, also muss ich vielleicht ein wenig recherchieren, um den Compiler zu wechseln.

Ab Xcode 4.2 sieht es so aus, als sei Clang der Standard-Compiler für Mac OS X.

Ich verwende Xcode 3.2.6, die aktuellste Version, die ich für Snow Leopard herunterladen konnte.
Wenn ich „clang --version“ ausführe, sehe ich, dass ich clang Version 1.7 installiert habe.

Aus einer schnellen Suche sieht es so aus, als könnte ich die Änderung bewirken mit:
option(USE_CLANG "build application with clang" ON)

Aber ich denke, ich muss http://clang.llvm.org/get_started.html gründlich lesen und heute Abend testen, dann kann ich Feedback geben.

Danke noch einmal!

Schließen, um den Issue-Tracker sauber zu halten, da dies nachgelagert zu node-sass gehen sollte.
@fivedoor Fühlen Sie sich frei, Ihre Ergebnisse trotzdem hier zu melden, wenn Sie Clang zum Laufen bringen können.

Beim erneuten Besuch, um zu berichten, habe ich versucht, den Schalter zu klirren, und habe immer noch so ziemlich die gleichen Fehler getroffen.

Nur diesmal statt der Zeile:
g++: error: unrecognized command line option '-stdlib=libc++'
ich habe
make: clang++: No such file or directory

was vielleicht darauf hindeutet, dass die Befehle, die ich zum Umschalten auf Clang verwendet habe, nicht ausreichend waren:

fivedoors-MacBook-Pro:~ fivedoor$ export CC=clang
fivedoors-MacBook-Pro:~ fivedoor$ export CXX=clang++

Der Installationsprozess war sehr langsam und dieses Mal war es am schlimmsten. Es dauerte ungefähr 3,5 Stunden, bis die Installation ihren Lauf nahm (und fehlschlug).

Ich werde sehen, welche Eingaben ich zu dem Fehler im node-sass-Forum erhalten kann, und eine Lösung melden, wenn ich eine bekomme.

@fivedoor make: clang++: No such file or directory ist nicht so schlimm, der Befehlszeilenaufruf konnte Ihren Compiler nicht finden - können Sie versuchen, den vollständigen Pfad zu clang und clang++ herauszufinden und ihn stattdessen zu verwenden? export CC=/full/path/to/clang export CXX=/full/path/to/clang++

Danke saper

Also habe ich versucht:
fivedoors-MacBook-Pro:~ fivedoor$ export CC=/usr/bin/clang
fivedoors-MacBook-Pro:~ fivedoor$ export CXX=/usr/bin/clang++

was wieder zu demselben Fehler führte, aber mit dem Unterschied:
make: /usr/bin/clang++: No such file or directory

Nochmal prüfen:
$ which clang
kehrt zurück:
/usr/bin/clang

aber
which clang++
gibt nichts zurück

Bei der anfänglichen Suche hatte ich angenommen, dass ich mit clang auch bedeuten würde, dass clang ++ verfügbar war?
Alles, was ich bei der Installation von clang++ finden kann, ist auf Ubuntu ausgerichtet.
Hast du eine weitere Empfehlung, was du als nächstes ausprobieren solltest?
Danke!

Probieren Sie einfach export CXX=/usr/bin/clang aus. Können Sie /usr/bin/clang --version noch einmal überprüfen, um sicherzustellen, dass Sie Ihren neu installierten Clang verwenden und nicht den alten von Apple?

/usr/bin/clang --version
gibt zurück:

Apple clang version 1.7 (tags/Apple/clang-77) (based on LLVM 2.9svn)
Target: x86_64-apple-darwin10
Thread model: posix

Ja, sieht so aus, als wäre das die Version, die mit 10.6.8 kam, denke ich

Ich habe export CXX=/usr/bin/clang ausprobiert, bevor ich die vorherigen Fehlermeldungen erhalten habe
Danke

Sieht so aus, als könnte ich brew verwenden, um eine neuere Version mit zu installieren
brew install --with-clang llvm
Ich werde mir das mal anschauen

Perfekt!

Nur um den Beitrag mit dem zu aktualisieren, was mich am Ende durchgebracht hat ...
Ich habe es versucht
brew install --with-clang llvm
aber clang --version gab immer noch Version 1.7 zurück

Ich habe dann folgendes probiert:

$ port search clang
$ sudo port install clang-3.6
$ port select --list clang
$ sudo port select --set clang mp-clang-3.6

Das schien es so zu tun
$ clang --version gab clang version 3.6.2 (tags/RELEASE_362/final) zurück

Ich habe dann die Pfade aktualisiert:

$ export CC=/opt/local/bin/clang
$ export CXX=/opt/local/bin/clang++

Diesmal wurde die Installation erfolgreich abgeschlossen :)

Vielen Dank für Ihre Hilfe und den Wegweiser in die richtige Richtung Saper - es war von unschätzbarem Wert!

Ein Nachwort -
Ich habe anscheinend viele Warnungen während der Installation erhalten.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

Ich habe einige Warnungen von Brew bezüglich der Unterstützung für 10.6.8 erhalten. und bevor das oben Gesagte funktionierte, war ich kurz davor, eine Version von El Capitan aufzugeben und zu installieren (um als partitioniertes Laufwerk zu laufen, damit ich Snow Leopard für andere Apps behalten kann)

Ich frage mich, ob das immer noch eine klügere Option für die Zukunft ist, da ich das Gefühl habe, dass ich auf mehr Probleme im Zusammenhang mit der Verwendung von Snow Leopard/einem älteren Betriebssystem stoßen könnte?

Trotzdem nochmals vielen Dank für die Unterstützung zu diesem Thema!

Typ-ID-Warnung ist harmlos, sie wurde später behoben - siehe https://github.com/sass/libsass/issues/1523

configure: error: installation or configuration problem: assembler cannot create object files.

Dies ist etwas Ernsteres, vielleicht möchten Sie dies den Leuten melden, die jpeg-tran betreuen.

Höchstwahrscheinlich müssen Sie irgendwie auf den Assembler zeigen, der funktioniert; etwas Seltsames geht hier vor.

Installieren Sie einfach Entwicklungsabhängigkeiten und versuchen Sie, npm test gegen node-sass auszuführen, ich hoffe, es funktioniert!

@fivedoor Ich habe genau das gleiche Problem. versucht, den Compiler auf Clang umzustellen. Können Sie mir bitte die Schritte sagen, wie es geht. Danke!

Es wurde auch versucht, eine spätere Version von clang mit zu installieren
brew install --with-clang llvm

aber ich erhalte den folgenden Fehler. Ich bin Anfänger und brauche dringend Hilfe!

shyam-molugus-macbook-5:pulses Shyam$ brew install --with-clang llvm
Warnung: Sie verwenden OS X 10.6.
Wir (und Apple) leisten keinen Support für diese alte Version.
Es kann zu Build-Fehlern oder anderen Brüchen kommen.
==> Herunterladen von http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
Bereits heruntergeladen: /Users/Shyam/Library/Caches/Homebrew/llvm-3.6.2.tar.xz
==> Herunterladen von http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
Bereits heruntergeladen: /Users/Shyam/Library/Caches/Homebrew/llvm--clang-3.6.2.tar.xz
==> cmake -G Unix Makefiles /private/tmp/llvm-20160602-48463-1r6cqk/llvm-3.6.2.src
Die letzten 15 Zeilen aus /Users/Shyam/Library/Logs/Homebrew/llvm/01.cmake:

make: *** [cmTC_183c8/fast] Fehler 2

CMake kann dieses Projekt nicht korrekt generieren.
Call Stack (letzter Aufruf zuerst):
CMakeLists. txt:25 (Projekt)

-- Konfiguration unvollständig, Fehler aufgetreten!
Siehe auch „/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeOutput.log“.
Siehe auch „/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeError.log“.

LESEN SIE DIES: https://git.io/brew-troubleshooting
Wenn Sie dieses Problem melden, tun Sie dies bitte unter (nicht Homebrew/brew):
https://github.com/Homebrew/homebrew-core/issues

Diese offenen Fragen können ebenfalls hilfreich sein:
llvm 3.8.0 https://github.com/Homebrew/homebrew-core/pull/1593
llvm und openmp https://github.com/Homebrew/homebrew-core/issues/1254

@smolugu Nun, das hat nichts mit diesem Projekt zu tun. Sie sind ziemlich alleine, da die Meldungen besagen, dass Ihre Betriebssystemversion nicht unterstützt wird. Sie können versuchen, in der Brauerei-Community um Hilfe zu bitten. Ein Upgrade Ihres cmake kann vielleicht helfen.

@Saper Danke! Ich hatte gehofft, hier Hilfe zu bekommen, da @fivedoor das gleiche Problem hatte und das gleiche OS X verwendete. Werde es nach dem Upgrade von cmake erneut versuchen.

@smologu
Ich fasse nur das Kernmaterial aus den Notizen zusammen, die ich zu dem gemacht habe, was ich getan habe.
Es ist eine Weile her, also hoffe es ist klar und hilft:

// Folgen Sie den Ratschlägen auf https://github.com/nodejs/node-gyp/issues/906
// gcc48 installieren

$ sudo port install gcc48
$ sudo port select --set gcc mp-gcc48
Selecting 'mp-gcc48' for 'gcc' succeeded. 'mp-gcc48' is now active.

// Knoten-Gyp-Ordner erneut löschen

$ which clang
/usr/bin/clang

// verfügbaren Pfad bestätigen

$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin

// finden Sie den vollständigen Pfad zu clang und clang++ und verwenden Sie ihn stattdessen
// https://github.com/sass/libsass/issues/1998#issuecomment -211099908

// verfügbare Versionen von clang prüfen
$ port search clang

//und installieren
$ sudo port install clang-3.6

// schien zu funktionieren, also check

$ port select --list clang

Available versions for clang:
    mp-clang-3.6
    none (active)

// sieht gut aus, also wähle 3.6

$ sudo port select --set clang mp-clang-3.6

Password:
Selecting 'mp-clang-3.6' for 'clang' succeeded. 'mp-clang-3.6' is now active.

// Erfolg
//Check aktualisiert - Erfolg

// versuchen, den Exportort festzulegen

$ export CC=/opt/local/bin/clang
$ export CXX=/opt/local/bin/clang++

// Erfolg

Denke du @fivedoor , das ist sehr nützlich. clang 3.6 ist zu neu, um mit einem alten clang gebaut zu werden, also müssen wir einen sofortigen Schritt unternehmen – zuerst gcc48 bauen und dann Build clang-3.6 verwenden.

Eigentlich sollte gcc48 ausreichen, um node-sass zu erstellen, aber dann verwenden Sie eine moderne libstdc++, die mit gcc48 geliefert wird, und Sie könnten Probleme bekommen, wenn Sie unseren Code innerhalb von node ausführen, der AFAIK die alte C++-Bibliothek verwendet, die immer noch von Apple bereitgestellt wird.

@fivedoor @saper Danke! Schätze es wirklich. Ich habe fast aufgegeben und überlegt, mir einen neuen Mac zu kaufen. werde aber eure vorschläge ausprobieren. wird Sie aktualisieren.

Grüße,

Sieht so aus, als hätte Richard Stallman dieses Mal gegen Apple gewonnen :)

Ich hatte am 10.6.8 Erfolg mit Folgendem.

brew install gcc
CXX=gcc-5 brew install libsass

Aber CXX=gcc-5 npm install node-sass schlägt mit einem Flag-Fehler fehl. Ich sehe, dass die node-sass node-gyp-Datei c++11-Flags für clang hinzufügt, die mit den c++-Flags für gcc in Konflikt stehen. Es wäre schön, wenn node-sass erkennen könnte, ob ältere Macs tatsächlich clang ausführen, oder dokumentieren könnte, wie die Flags überschrieben werden.

Ich muss noch erfolgreich brew mit gcc-5 klirren, was auf einem alten Laptop ewig dauert. Ich erwähne dies als Kontrast zur Verwendung von port.

Es ist wahrscheinlich erwähnenswert, dass ich zwar das ursprüngliche Problem in diesem Beitrag lösen konnte, aber später auf weitere Probleme gestoßen bin, die anscheinend mit dem Ausführen eines älteren Betriebssystems zusammenhängen.

Schließlich habe ich el-capitan auf einem externen Laufwerk installiert, wobei 10.6.8 beibehalten wurde, um ältere Software auszuführen und als Ausweichlösung. Solange Sie einen Computer haben, auf dem Snow Leopard oder höher ausgeführt wird, sollten Sie meiner Meinung nach in der Lage sein, auf diesem Computer kostenlos auf das neueste Betriebssystem zu aktualisieren.

// Kompatibilitätsprüfung:
http://www.everymac.com/mac-answers/os-x-el-capitan-faq/os-x-el-capitan-compatible-macs-system-requirements.html

Das mag wie eine langwierige Problemumgehung erscheinen, aber mit einem aktuellen Betriebssystem läuft alles schneller und ich stoße auf viel weniger Konflikte, die gelöst werden müssen, sodass es auf lange Sicht Zeit sparen kann, vorausgesetzt, Sie haben keinen bestimmten Bedarf Schneeleopard laufen zu bleiben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen