Libsass: Node-gyp g++ et erreur libsass

Créé le 14 avr. 2016  ·  21Commentaires  ·  Source: sass/libsass

J'ai suivi le guide pour installer la fondation Zurb, mais je rencontre un problème constant.
$ npm installer fondation-cli --global
réussi mais
:fondation cinq portes$ fondation nouveau
fait apparaître:

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

J'ai été informé sur le forum des problèmes de node-gyp que ce n'était pas un bogue de node-gyp mais peut-être un problème de libsass. J'ai vu des erreurs similaires dans d'autres messages github.

Pour être honnête, étant assez nouveau sur node, je suis sûr qu'il est possible que j'aie été incompétent dans la mise en œuvre de certaines des différentes solutions suggérées.

J'ai essayé pas mal de choses sans aucun plaisir :

  • complétez la désinstallation/réinstallation du dernier nœud & npm;
  • nettoyer le cache npm ; installer avec nvm, brasser ;
  • mise à jour de git vers la dernière version prenant en charge le léopard des neiges ;
  • npm -- installation facultative ;
  • macports installés puis mis à jour GCC et G++ ;
  • suppression du dossier .node-gyp et réinstallation ;
  • désinstallez et réinstallez foundation-cli.

J'ai gardé un journal de dépannage en expansion au fur et à mesure. Les trucs les plus récents sur https://github.com/fivedoor/foundation-records/blob/master/my_installation_log_post_reinstall100416

À défaut d'une solution miracle, quelqu'un pourrait-il indiquer si la mise à niveau vers un système d'exploitation ultérieur est susceptible d'aider ou non? (Je sais que le léopard des neiges est vieux mais je m'y suis accroché pour plus de stabilité.) J'ai reçu des avertissements de brew disant que "Nous (et Apple) ne fournissons pas de support pour OS 10.6"

Ce qui est frustrant, c'est qu'à ce stade, je n'essaie pas de faire quelque chose de plus "avancé" que d'installer simplement les packages dont j'ai besoin pour commencer.

  • MACOS X Version 10.6.8
  • npm 3.8.6
  • nœud v4.4.2
  • Xcode 3.2.6
  • CCG 4.8.5
  • g++ 4.8.5
  • nvm 0.31.0
  • git version 1.8.4.2
  • boucle 7.19.7

Merci

Commentaire le plus utile

Juste pour mettre à jour le message avec ce qui m'a permis de traverser à la fin ...
J'ai essayé
brew install --with-clang llvm
mais clang --version a toujours renvoyé la version 1.7

J'ai ensuite essayé ce qui suit :

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

Cela semblait le faire comme
$ clang --version retourné clang version 3.6.2 (tags/RELEASE_362/final)

J'ai ensuite mis à jour les chemins:

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

Cette fois, l'installation s'est terminée avec succès :)

Merci beaucoup pour votre aide et pour m'avoir guidé dans la bonne direction - c'était inestimable !

Un post-scriptum -
J'ai eu l'impression de recevoir beaucoup d'avertissements lors de l'installation.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

J'ai reçu pas mal d'avertissements de brew concernant la prise en charge de 10.6.8. et avant que ce qui précède ne fonctionne, j'étais sur le point d'abandonner et d'installer une version d'el capitan (pour fonctionner en tant que lecteur partitionné afin que je puisse conserver le léopard des neiges pour d'autres applications)

Je me demande si c'est toujours une option plus sage à l'avenir, car j'ai l'impression que je pourrais rencontrer plus de problèmes liés à l'utilisation du léopard des neiges / d'un système d'exploitation plus ancien ?

Quoi qu'il en soit, merci encore pour le soutien sur ce problème!

Tous les 21 commentaires

Cela appartient en fait à https://github.com/sass/node-sass/issues , mais permettez-moi de vous demander d'abord : que se passe-t-il si vous utilisez clang au lieu de gcc ?

Merci pour votre contribution.

C'est tout un territoire assez nouveau pour moi, donc je devrai peut-être faire un peu de recherche pour changer de compilateur.

Il semble que depuis Xcode 4.2, Clang soit le compilateur par défaut pour Mac OS X.

J'utilise Xcode 3.2.6 qui était la version la plus récente que j'ai pu télécharger pour le léopard des neiges.
En exécutant 'clang --version', je vois que la version 1.7 de clang est installée.

D'après une recherche rapide, il semble que je puisse effectuer le changement avec :
option(USE_CLANG "build application with clang" ON)

Mais je pense que j'aurai besoin de lire correctement sur http://clang.llvm.org/get_started.html et de tester ce soir, puis je pourrai faire des commentaires.

Merci encore!

Fermeture pour garder le suivi des problèmes bien rangé, car cela devrait aller en aval vers node-sass.
@fivedoor N'hésitez pas à signaler vos découvertes ici de toute façon si vous pouvez faire fonctionner le clang.

En revenant pour signaler, j'ai essayé de passer à clang et j'ai toujours rencontré à peu près les mêmes erreurs.

Sauf cette fois à la place de la ligne :
g++: error: unrecognized command line option '-stdlib=libc++'
j'ai eu
make: clang++: No such file or directory

ce qui suggère peut-être que les commandes que j'ai utilisées pour passer à clang n'étaient pas suffisantes :

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

Le processus d'installation a été très lent et cette fois c'était le pire. Il a fallu environ 3,5 heures pour que l'installation se déroule (et échoue).

Je vais voir quelle entrée je peux obtenir concernant l'erreur sur le forum node-sass et signaler une solution si j'en ai une.

@fivedoor make: clang++: No such file or directory n'est pas si mal, l'invocation de la ligne de commande n'a pas pu trouver votre compilateur - pouvez-vous essayer de savoir quel est le chemin complet vers clang et clang++ et l'utiliser à la place ? export CC=/full/path/to/clang export CXX=/full/path/to/clang++

Merci saper

Alors j'ai essayé :
cinqportes-MacBook-Pro :~ cinqportes$ export CC=/usr/bin/clang
fivedoors-MacBook-Pro :~ cinq portes$ export CXX=/usr/bin/clang++

ce qui a entraîné à nouveau la même erreur mais avec la distinction :
make: /usr/bin/clang++: No such file or directory

Vérification à nouveau :
$ which clang
Retour:
/usr/bin/clang

mais
which clang++
ne renvoie rien

À partir de la recherche initiale, j'avais supposé qu'avoir clang signifierait également que clang ++ était disponible?
Tout ce que je peux trouver lors de l'installation de clang++ est orienté vers Ubuntu.
Avez-vous une autre recommandation sur ce qu'il faut essayer ensuite ?
Merci!

Essayez simplement export CXX=/usr/bin/clang Pouvez-vous revérifier /usr/bin/clang --version pour vous assurer que vous utilisez votre nouveau clang installé et non l'ancien d'Apple ?

/usr/bin/clang --version
revient :

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

oui, on dirait que c'est la version fournie avec 10.6.8 je pense

J'ai essayé export CXX=/usr/bin/clang avant de recevoir les messages d'erreur précédents
Merci

On dirait que je peux utiliser brew pour installer une version ultérieure avec
brew install --with-clang llvm
Je vais jeter un oeil pour essayer ça

Parfait!

Juste pour mettre à jour le message avec ce qui m'a permis de traverser à la fin ...
J'ai essayé
brew install --with-clang llvm
mais clang --version a toujours renvoyé la version 1.7

J'ai ensuite essayé ce qui suit :

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

Cela semblait le faire comme
$ clang --version retourné clang version 3.6.2 (tags/RELEASE_362/final)

J'ai ensuite mis à jour les chemins:

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

Cette fois, l'installation s'est terminée avec succès :)

Merci beaucoup pour votre aide et pour m'avoir guidé dans la bonne direction - c'était inestimable !

Un post-scriptum -
J'ai eu l'impression de recevoir beaucoup d'avertissements lors de l'installation.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

J'ai reçu pas mal d'avertissements de brew concernant la prise en charge de 10.6.8. et avant que ce qui précède ne fonctionne, j'étais sur le point d'abandonner et d'installer une version d'el capitan (pour fonctionner en tant que lecteur partitionné afin que je puisse conserver le léopard des neiges pour d'autres applications)

Je me demande si c'est toujours une option plus sage à l'avenir, car j'ai l'impression que je pourrais rencontrer plus de problèmes liés à l'utilisation du léopard des neiges / d'un système d'exploitation plus ancien ?

Quoi qu'il en soit, merci encore pour le soutien sur ce problème!

l'avertissement typeid est inoffensif, il a été corrigé plus tard - voir https://github.com/sass/libsass/issues/1523

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

C'est quelque chose de plus sérieux, vous voudrez peut-être le signaler aux personnes qui maintiennent jpeg-tran.

Très probablement, vous devez pointer d'une manière ou d'une autre vers l'assembleur qui fonctionne ; quelque chose d'étrange se passe ici.

Installez simplement les dépendances de développement et essayez d'exécuter npm test contre node-sass, j'espère que cela fonctionnera !

@fivedoor Je rencontre exactement le même problème. essayer de passer le compilateur à clang. Pouvez-vous s'il vous plaît me dire les étapes sur la façon de le faire. Merci!

J'ai également essayé d'installer une version ultérieure de clang en utilisant
brew install --with-clang llvm

mais je reçois l'erreur ci-dessous. Je suis novice et j'ai vraiment besoin d'aide !

shyam-molugus-macbook-5:pulses Shyam$ brew install --with-clang llvm
Avertissement : Vous utilisez OS X 10.6.
Nous (et Apple) ne fournissons pas de support pour cette ancienne version.
Vous pouvez rencontrer des échecs de construction ou d'autres ruptures.
==> Téléchargement http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
Déjà téléchargé : /Users/Shyam/Library/Caches/Homebrew/llvm-3.6.2.tar.xz
==> Téléchargement http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
Déjà téléchargé : /Users/Shyam/Library/Caches/Homebrew/llvm--clang-3.6.2.tar.xz
==> cmake -G Makefiles Unix /private/tmp/llvm-20160602-48463-1r6cqk/llvm-3.6.2.src
15 dernières lignes de /Users/Shyam/Library/Logs/Homebrew/llvm/01.cmake :

marque : *** [cmTC_183c8/fast] Erreur 2

CMake ne pourra pas générer correctement ce projet.
Pile d'appels (appel le plus récent en premier) :
CMakeLists. txt:25 (projet)

-- Configuration incomplète, des erreurs se sont produites !
Voir aussi "/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeOutput.log".
Voir aussi "/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeError.log".

LISEZ CECI : https://git.io/brew-troubleshooting
Si vous signalez ce problème, veuillez le faire à (pas Homebrew/brew):
https://github.com/Homebrew/homebrew-core/issues

Ces problèmes ouverts peuvent également aider :
llvm 3.8.0 https://github.com/Homebrew/homebrew-core/pull/1593
llvm et openmp https://github.com/Homebrew/homebrew-core/issues/1254

@smolugu eh bien, cela n'a aucun rapport avec ce projet. Vous êtes pratiquement seul, car les messages indiquent que la version de votre système d'exploitation n'est pas prise en charge. Vous pouvez essayer de demander de l'aide à la communauté des brasseurs. La mise à jour de votre cmake peut aider, peut-être.

@saper Merci ! J'espérais obtenir de l'aide ici puisque @fivedoor avait le même problème et utilisait le même OS X. J'essaierai à nouveau après la mise à niveau de cmake.

@smologu
Je récapitule juste l'essentiel des notes que j'ai prises sur ce que j'ai fait.
Cela fait un moment, alors j'espère que c'est clair et que ça aide:

// Suivez les conseils sur https://github.com/nodejs/node-gyp/issues/906
// installe gcc48

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

// supprimer à nouveau le dossier node-gyp

$ which clang
/usr/bin/clang

// confirme le chemin disponible

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

// trouve quel est le chemin complet vers clang et clang++ et l'utilise à la place
// https://github.com/sass/libsass/issues/1998#issuecomment -211099908

// vérifie les versions disponibles de clang
$ port search clang

//et installer
$ sudo port install clang-3.6

// semblait fonctionner alors vérifiez

$ port select --list clang

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

// a l'air bien alors sélectionnez 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.

// Succès
//vérifier la mise à jour - succès

// essayez de définir l'emplacement d'exportation

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

// Succès

Pensez-vous @fivedoor , c'est très utile. clang 3.6 est trop nouveau pour être construit avec un ancien clang, nous devons donc faire un pas immédiat - d'abord pour construire gcc48 puis l'utiliser pour construire clang-3.6.

En fait, gcc48 devrait suffire à construire node-sass, mais vous utilisez alors une libstdc++ moderne fournie avec gcc48 et vous risquez d'avoir des problèmes lors de l'exécution de notre code à partir de node, qui utilise l'ancienne bibliothèque C++ toujours fournie par Apple.

@fivedoor @saper Merci ! J'apprécie beaucoup. J'ai failli abandonner et penser à acheter un nouveau mac. mais je vais essayer vos suggestions. vous mettra à jour.

Salutations,

On dirait que Richard Stallman a gagné contre Apple cette fois :)

J'ai eu du succès avec ce qui suit sur 10.6.8.

brew install gcc
CXX=gcc-5 brew install libsass

Mais CXX=gcc-5 npm install node-sass échoue avec une erreur de drapeau. Je vois que le fichier node-sass node-gyp ajoute des drapeaux c++11 pour clang, qui entrent en conflit avec les drapeaux c++ pour gcc. Ce serait bien si node-sass pouvait détecter si les macs plus anciens exécutent réellement clang, ou documenter comment remplacer les drapeaux.

Je n'ai pas encore réussi à clang brew en utilisant gcc-5, ce qui prend une éternité sur un vieil ordinateur portable. Je mentionne cela en contraste avec l'utilisation de port.

Cela vaut probablement la peine d'ajouter que même si j'ai pu résoudre le problème d'origine dans ce post, j'ai rencontré plus de problèmes sur toute la ligne qui semblaient être liés à l'exécution d'un système d'exploitation plus ancien.

J'ai finalement installé el-capitan sur un lecteur externe, en préservant 10.6.8 pour exécuter des logiciels plus anciens et comme solution de secours. Tant que vous avez une machine exécutant Snow Leopard ou supérieur, je pense que vous devriez pouvoir mettre à jour gratuitement le dernier système d'exploitation sur cette machine.

// Vérification de compatibilité :
http://www.everymac.com/mac-answers/os-x-el-capitan-faq/os-x-el-capitan-compatible-macs-system-requirements.html

Cela peut sembler une solution de contournement longue, mais en utilisant un système d'exploitation à jour, tout fonctionne plus rapidement et je me heurte à beaucoup moins de conflits à résoudre, ce qui peut faire gagner du temps à long terme, à condition que vous n'ayez pas un besoin spécifique rester en cours d'exécution léopard des neiges.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

xzyfer picture xzyfer  ·  7Commentaires

GottZ picture GottZ  ·  3Commentaires

delijah picture delijah  ·  7Commentaires

bertusgroenewegen picture bertusgroenewegen  ·  6Commentaires

nex3 picture nex3  ·  9Commentaires