Libsass: Error de node-gyp g ++ y libsass

Creado en 14 abr. 2016  ·  21Comentarios  ·  Fuente: sass/libsass

He estado siguiendo la guía para instalar la base Zurb pero me encontré con un problema constante.
$ npm install fundación-cli --global
tiene exito pero
:fundación cinco puertas$ fundación nueva
trae a colación:

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

Me informaron en el foro de problemas de node-gyp que no se trataba de un error de node-gyp, sino quizás de un problema de libsass. He visto errores similares en otras publicaciones de github.

Para ser honesto, siendo bastante nuevo en el nodo, estoy seguro de que es posible que haya sido inepto en la implementación de algunas de las diversas soluciones sugeridas.

He probado bastantes cosas sin ninguna alegría:

  • completar la desinstalación/reinstalación del último nodo & npm;
  • limpiar caché npm; instalar con nvm, preparar cerveza;
  • actualizando git a la última versión compatible con snow leopard;
  • npm --instalación opcional;
  • instaló macports y luego actualizó GCC y G++;
  • eliminando la carpeta .node-gyp y reinstalando;
  • desinstale y vuelva a instalar Foundation-cli.

He estado manteniendo un registro de resolución de problemas en expansión a medida que avanzo. Las cosas más recientes en https://github.com/fivedoor/foundation-records/blob/master/my_installation_log_post_reinstall100416

Si falla una solución milagrosa, ¿alguien podría aconsejarme si la actualización a un sistema operativo posterior es probable que ayude o no? (Sé que el leopardo de las nieves es antiguo, pero me he aferrado a él para mantener la estabilidad). Recibí algunas advertencias de brew que decían "Nosotros (y Apple) no brindamos soporte para OS 10.6"

Lo frustrante es que en esta etapa no intento hacer nada más "avanzado" que simplemente instalar los paquetes que necesito para comenzar.

  • MACOS X versión 10.6.8
  • npm 3.8.6
  • nodo v4.4.2
  • Xcode 3.2.6
  • CCG 4.8.5
  • g ++ 4.8.5
  • nvm 0.31.0
  • git versión 1.8.4.2
  • rizo 7.19.7

Gracias

Comentario más útil

Solo para actualizar la publicación con lo que me ayudó al final...
Lo intenté
brew install --with-clang llvm
pero clang --version todavía devolvió la versión 1.7

Luego probé lo siguiente:

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

Eso parecía hacerlo como
$ clang --version devueltos clang version 3.6.2 (tags/RELEASE_362/final)

Luego actualicé las rutas:

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

Esta vez la instalación se completó con éxito :)

Muchas gracias por su ayuda y por guiarme en la dirección correcta. ¡Fue invaluable!

Una posdata -
Parecía recibir muchas advertencias durante la instalación.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

He recibido bastantes advertencias de brew sobre el soporte para 10.6.8. y antes de que lo anterior funcionara, estaba a punto de rendirse e instalar una versión de el capitan (para que se ejecutara como un disco particionado y pudiera conservar el leopardo de las nieves para otras aplicaciones)

Me pregunto si esa sigue siendo una opción más sabia en el futuro, ya que tengo la sensación de que puedo encontrarme con más problemas relacionados con el uso de Snow Leopard / un sistema operativo más antiguo.

De todos modos, gracias de nuevo por el apoyo en este tema!

Todos 21 comentarios

Esto en realidad pertenece a https://github.com/sass/node-sass/issues , pero déjame preguntarte primero: ¿qué sucede si usas clang en lugar de gcc?

Gracias por tu aporte Saper.

Todo esto es un territorio bastante nuevo para mí, por lo que es posible que deba investigar un poco para cambiar el compilador.

Parece que desde Xcode 4.2, Clang es el compilador predeterminado para Mac OS X.

Estoy usando Xcode 3.2.6, que fue la versión más actualizada que pude descargar para Snow Leopard.
Al ejecutar 'clang --version', veo que tengo instalada la versión 1.7 de clang.

De una búsqueda rápida parece que puedo efectuar el cambio con:
option(USE_CLANG "build application with clang" ON)

Pero creo que tendré que leer correctamente en http://clang.llvm.org/get_started.html y probar esta noche y luego puedo enviar comentarios.

¡Gracias de nuevo!

Cerrando para mantener ordenado el rastreador de problemas, ya que esto debería ir en sentido descendente a node-sass.
@fivedoor Siéntase libre de informar sus hallazgos aquí de todos modos si puede hacer que Clang funcione.

Volviendo a visitar para informar, probé el cambio a sonido metálico y todavía tuve prácticamente los mismos errores.

Excepto que esta vez en lugar de la línea:
g++: error: unrecognized command line option '-stdlib=libc++'
tengo
make: clang++: No such file or directory

lo que quizás sugiera que los comandos que usé para cambiar a clang no fueron suficientes:

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

El proceso de instalación ha sido muy lento y esta vez fue la peor. La instalación tardó aproximadamente 3,5 horas en ejecutar su curso (y fallar).

Veré qué entrada puedo obtener sobre el error en el foro de node-sass e informaré una solución si obtengo una.

@fivedoor make: clang++: No such file or directory no es tan malo, la invocación de la línea de comandos no pudo encontrar su compilador. ¿Puede intentar averiguar cuál es la ruta completa para clang y clang ++ y usarla en su lugar? export CC=/full/path/to/clang export CXX=/full/path/to/clang++

gracias saper

Así que probé:
cinco puertas-MacBook-Pro:~ cinco puertas $ exportar CC=/usr/bin/clang
cinco puertas-MacBook-Pro:~ cinco puertas $ exportar CXX=/usr/bin/clang++

lo que resultó en el mismo error nuevamente pero con la distinción:
make: /usr/bin/clang++: No such file or directory

Comprobando de nuevo:
$ which clang
devoluciones:
/usr/bin/clang

pero
which clang++
no devuelve nada

Desde la búsqueda inicial, asumí que tener clang también significaría que clang ++ estaba disponible.
Todo lo que puedo encontrar sobre la instalación de clang ++ está orientado a ubuntu.
¿Tiene alguna otra recomendación sobre qué probar a continuación?
¡Gracias!

Solo prueba export CXX=/usr/bin/clang ¿Puedes verificar /usr/bin/clang --version para asegurarte de que estás usando tu nuevo clang instalado y no el antiguo de Apple?

/usr/bin/clang --version
devoluciones:

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

sí, parece que esa es la versión que vino con 10.6.8 creo

Probé export CXX=/usr/bin/clang antes de recibir los mensajes de error anteriores
Gracias

Parece que puedo usar brew para instalar una versión posterior con
brew install --with-clang llvm
Voy a echar un vistazo a darle una oportunidad

¡Perfecto!

Solo para actualizar la publicación con lo que me ayudó al final...
Lo intenté
brew install --with-clang llvm
pero clang --version todavía devolvió la versión 1.7

Luego probé lo siguiente:

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

Eso parecía hacerlo como
$ clang --version devueltos clang version 3.6.2 (tags/RELEASE_362/final)

Luego actualicé las rutas:

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

Esta vez la instalación se completó con éxito :)

Muchas gracias por su ayuda y por guiarme en la dirección correcta. ¡Fue invaluable!

Una posdata -
Parecía recibir muchas advertencias durante la instalación.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

He recibido bastantes advertencias de brew sobre el soporte para 10.6.8. y antes de que lo anterior funcionara, estaba a punto de rendirse e instalar una versión de el capitan (para que se ejecutara como un disco particionado y pudiera conservar el leopardo de las nieves para otras aplicaciones)

Me pregunto si esa sigue siendo una opción más sabia en el futuro, ya que tengo la sensación de que puedo encontrarme con más problemas relacionados con el uso de Snow Leopard / un sistema operativo más antiguo.

De todos modos, gracias de nuevo por el apoyo en este tema!

La advertencia de typeid es inofensiva, se solucionó más tarde; consulte https://github.com/sass/libsass/issues/1523

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

Esto es algo más serio, es posible que desee informar esto a las personas que mantienen jpeg-tran.

Lo más probable es que necesite señalar de alguna manera el ensamblador que funciona; algo extraño está pasando aquí.

Simplemente instale las dependencias de desarrollo e intente ejecutar npm test contra node-sass, ¡espero que funcione!

@fivedoor Estoy pasando exactamente por el mismo problema. tratando de cambiar el compilador a sonido metálico. Por favor me puedes decir los pasos de como hacerlo. ¡Gracias!

También intenté instalar una versión posterior de clang usando
brew install --with-clang llvm

pero estoy recibiendo el siguiente error. Soy un novato y realmente necesito ayuda!

shyam-molugus-macbook-5: pulsos Shyam$ brew install --with-clang llvm
Advertencia: está utilizando OS X 10.6.
Nosotros (y Apple) no brindamos soporte para esta versión anterior.
Puede encontrar fallas de construcción u otras roturas.
==> Descargando http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
Ya descargado: /Users/Shyam/Library/Caches/Homebrew/llvm-3.6.2.tar.xz
==> Descargando http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
Ya descargado: /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
Últimas 15 líneas de /Users/Shyam/Library/Logs/Homebrew/llvm/01.cmake:

hacer: *** [cmTC_183c8/fast] Error 2

CMake no podrá generar correctamente este proyecto.
Pila de llamadas (llamada más reciente primero):
CMakeListas. txt:25 (proyecto)

-- ¡Configuración incompleta, ocurrieron errores!
Consulte también "/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeOutput.log".
Consulte también "/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeError.log".

LEE ESTO: https://git.io/brew-troubleshooting
Si informa este problema, hágalo en (no en Homebrew/brew):
https://github.com/Homebrew/homebrew-core/issues

Estos problemas abiertos también pueden ayudar:
llvm 3.8.0 https://github.com/Homebrew/homebrew-core/pull/1593
llvm y openmp https://github.com/Homebrew/homebrew-core/issues/1254

@smolugu bueno, esto no tiene nada que ver con este proyecto. Está prácticamente solo, ya que los mensajes dicen que la versión de su sistema operativo no es compatible. Puedes intentar pedir ayuda en la comunidad cervecera. Actualizar su cmake puede ayudar, tal vez.

@saper ¡Gracias! Esperaba obtener ayuda aquí ya que @fivedoor tenía el mismo problema y usaba el mismo OS X. Lo intentaré nuevamente después de actualizar cmake.

@smologu
Solo recapitulando el material central de las notas que tomé sobre lo que hice.
Ha pasado un tiempo, así que espero que sea claro y ayude:

// Siga los consejos en https://github.com/nodejs/node-gyp/issues/906
// instalar gcc48

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

// borra la carpeta node-gyp de nuevo

$ which clang
/usr/bin/clang

// confirma la ruta 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

// encontrar cuál es la ruta completa a clang y clang++ y usarla en su lugar
// https://github.com/sass/libsass/issues/1998#issuecomment-211099908

// comprobar las versiones disponibles de clang
$ port search clang

//e instalar
$ sudo port install clang-3.6

// parecía funcionar así que revisa

$ port select --list clang

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

// se ve bien así que selecciona 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.

// Éxito
// comprobar actualizado - éxito

// intenta establecer la ubicación de exportación

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

// Éxito

Piensa en @fivedoor , eso es muy útil. clang 3.6 es demasiado nuevo para compilarlo con un clang anterior, por lo que debemos dar un paso inmediato: primero compilar gcc48 y luego usarlo build clang-3.6.

En realidad, gcc48 debería ser suficiente para construir node-sass, pero luego está usando una libstdc++ moderna que viene con gcc48 y puede terminar en problemas al ejecutar nuestro código desde dentro del nodo, que AFAIK usa la antigua biblioteca C++ que aún proporciona Apple.

@fivedoor @saper ¡ Gracias! Realmente lo aprecio. Casi me di por vencido y pensando en comprar una nueva Mac. pero probaré tus sugerencias. te actualizaré

Saludos,

Parece que Richard Stallman ha ganado contra Apple esta vez :)

He tenido éxito con lo siguiente en 10.6.8.

brew install gcc
CXX=gcc-5 brew install libsass

Pero CXX=gcc-5 npm install node-sass falla con un error de indicador. Veo que el archivo node-sass node-gyp agrega banderas c++ 11 para clang, que entran en conflicto con las banderas c++ para gcc. Sería bueno si node-sass pudiera detectar si las Mac más antiguas realmente están ejecutando clang, o documentar cómo anular las banderas.

Todavía tengo que hacer brew con éxito usando gcc-5, lo que lleva una eternidad en una computadora portátil vieja. Menciono esto como un contraste con el uso del puerto.

Probablemente valga la pena agregar que, si bien pude resolver el problema original en esta publicación, encontré más problemas en el futuro que parecían estar relacionados con la ejecución de un sistema operativo anterior.

Eventualmente instalé el-capitan en una unidad externa, preservando 10.6.8 para ejecutar un software más antiguo y como respaldo. Siempre que tenga una máquina que ejecute Snow Leopard o superior, creo que debería poder actualizar al último sistema operativo de forma gratuita en esa máquina.

// Comprobación de compatibilidad:
http://www.everymac.com/mac-answers/os-x-el-capitan-faq/os-x-el-capitan-compatible-macs-system-requirements.html

Eso puede parecer una solución alternativa larga, pero al usar un sistema operativo actualizado, todo funciona más rápido y me encuentro con muchos menos conflictos que deben resolverse, por lo que podría ahorrar tiempo a largo plazo, siempre que no tenga una necesidad específica. para seguir corriendo leopardo de las nieves.

¿Fue útil esta página
0 / 5 - 0 calificaciones