Libsass: Erro node-gyp g++ e libsass

Criado em 14 abr. 2016  ·  21Comentários  ·  Fonte: sass/libsass

Eu tenho seguido o guia para instalar a base Zurb, mas estou enfrentando um problema consistente.
$ npm install foundation-cli --global
é bem sucedido, mas
:fundação cinco portas$ fundação nova
traz à tona:

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

Fui informado no fórum de problemas do node-gyp que ele não era um bug do node-gyp, mas talvez um problema do libsass. Eu vi erros semelhantes em outras postagens do github.

Para ser honesto, sendo muito novo no node, tenho certeza de que é possível que eu tenha sido inepto na implementação de algumas das várias soluções sugeridas.

Eu tentei algumas coisas sem nenhuma alegria:

  • desinstalar/reinstalar o nó mais recente & npm;
  • limpar cache npm; instale com nvm, prepare;
  • atualizar o git para a versão mais recente que suporte o leopardo da neve;
  • npm --opcional instalar;
  • macports instalados e GCC e G++ atualizados;
  • excluindo a pasta .node-gyp e reinstalando;
  • desinstale e reinstale o foundation-cli.

Mantenho um registro de solução de problemas em expansão à medida que prossigo. As coisas mais recentes em https://github.com/fivedoor/foundation-records/blob/master/my_installation_log_post_reinstall100416

Na falta de uma solução de bala de prata, alguém poderia aconselhar se a atualização para um sistema operacional posterior provavelmente ajudará ou não? (Eu sei que o leopardo da neve é ​​antigo, mas me agarrei a ele para estabilidade.) Recebi alguns avisos da cerveja de que "Nós (e a Apple) não fornecemos suporte para OS 10.6"

O frustrante é que neste estágio eu não estou tentando fazer nada mais 'avançado' do que apenas instalar os pacotes que preciso para começar.

  • MACOS X Versão 10.6.8
  • npm 3.8.6
  • nó v4.4.2
  • Código X 3.2.6
  • GCC 4.8.5
  • g++ 4.8.5
  • nv 0,31,0
  • git versão 1.8.4.2
  • enrolar 7.19.7

obrigado

Comentários muito úteis

Só para atualizar o post com o que me fez passar no final...
tentei
brew install --with-clang llvm
mas clang --version ainda retornou a versão 1.7

Tentei então o seguinte:

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

Isso parecia fazê-lo como
$ clang --version devolvido clang version 3.6.2 (tags/RELEASE_362/final)

Então atualizei os caminhos:

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

Desta vez a instalação foi concluída com sucesso :)

Muito obrigado por sua ajuda e me guiando na direção certa saper - foi inestimável!

Um pós-escrito -
Parece que recebi muitos avisos durante a instalação.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

Eu tive alguns avisos do brew sobre o suporte para 10.6.8. e antes que o trabalho acima estivesse prestes a desistir e instalar uma versão do el capitan (para executar como unidade particionada para que eu possa reter o leopardo da neve para outros aplicativos)

Gostaria de saber se essa ainda é uma opção mais sábia daqui para frente, pois tenho a sensação de que posso ter mais problemas relacionados ao uso do Snow Leopard / um sistema operacional mais antigo?

De qualquer forma, obrigado novamente pelo apoio nesta questão!

Todos 21 comentários

Na verdade, isso pertence a https://github.com/sass/node-sass/issues , mas deixe-me perguntar primeiro: o que acontece se você usar clang em vez de gcc?

Obrigado pela sua entrada saper.

Isso tudo é um território muito novo para mim, então talvez eu precise fazer um pouco de pesquisa para mudar o compilador.

Parece que a partir do Xcode 4.2, Clang é o compilador padrão para Mac OS X.

Estou usando o Xcode 3.2.6, que foi a versão mais atualizada que consegui baixar para o Snow Leopard.
Ao executar 'clang --version', vejo que tenho a versão 1.7 do clang instalada.

A partir de uma pesquisa rápida, parece que posso efetuar a alteração com:
option(USE_CLANG "build application with clang" ON)

Mas acho que precisarei ler adequadamente em http://clang.llvm.org/get_started.html e testar hoje à noite e então posso dar feedback.

Obrigado novamente!

Fechando para manter o rastreador de problemas organizado, já que isso deve ir downstream para o node-sass.
@fivedoor Sinta-se à vontade para relatar suas descobertas aqui de qualquer maneira, se puder fazer o clang funcionar.

Revisitando para relatar, tentei mudar para clang e ainda atingi praticamente os mesmos erros.

Exceto desta vez em vez da linha:
g++: error: unrecognized command line option '-stdlib=libc++'
eu obtive
make: clang++: No such file or directory

o que talvez sugira que os comandos que usei para mudar para clang não foram suficientes:

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

O processo de instalação foi muito lento e desta vez foi o pior. Demorou cerca de 3,5 horas para a instalação executar seu curso (e falhar).

Vou ver qual entrada posso obter sobre o erro no fórum do node-sass e relatar uma solução se eu conseguir uma.

@fivedoor make: clang++: No such file or directory não é tão ruim, a invocação da linha de comando não pôde encontrar seu compilador - você pode tentar descobrir qual é o caminho completo para clang e clang ++ e usá-lo? export CC=/full/path/to/clang export CXX=/full/path/to/clang++

Obrigado saper

Então eu tentei:
fivedoors-MacBook-Pro:~ fivedoor$ export CC=/usr/bin/clang
fivedoors-MacBook-Pro:~ fivedoor$ export CXX=/usr/bin/clang++

que resultou no mesmo erro novamente, mas com a distinção:
make: /usr/bin/clang++: No such file or directory

Verificando novamente:
$ which clang
retorna:
/usr/bin/clang

mas
which clang++
não retorna nada

Da pesquisa inicial, presumi que ter clang também significaria que o clang ++ estava disponível?
Tudo o que posso encontrar sobre a instalação do clang ++ é voltado para o Ubuntu.
Você tem mais alguma recomendação sobre o que tentar a seguir?
Obrigado!

Apenas tente export CXX=/usr/bin/clang Você pode verificar /usr/bin/clang --version para ter certeza de que está usando seu novo clang instalado e não o antigo da Apple?

/usr/bin/clang --version
retornos:

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

sim, parece que essa é a versão que veio com 10.6.8 eu acho

Eu tentei export CXX=/usr/bin/clang antes de receber as mensagens de erro anteriores
obrigado

Parece que posso usar brew para instalar uma versão posterior com
brew install --with-clang llvm
vou dar uma olhada para dar uma chance

Perfeito!

Só para atualizar o post com o que me fez passar no final...
tentei
brew install --with-clang llvm
mas clang --version ainda retornou a versão 1.7

Tentei então o seguinte:

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

Isso parecia fazê-lo como
$ clang --version devolvido clang version 3.6.2 (tags/RELEASE_362/final)

Então atualizei os caminhos:

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

Desta vez a instalação foi concluída com sucesso :)

Muito obrigado por sua ajuda e me guiando na direção certa saper - foi inestimável!

Um pós-escrito -
Parece que recebi muitos avisos durante a instalação.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

Eu tive alguns avisos do brew sobre o suporte para 10.6.8. e antes que o trabalho acima estivesse prestes a desistir e instalar uma versão do el capitan (para executar como unidade particionada para que eu possa reter o leopardo da neve para outros aplicativos)

Gostaria de saber se essa ainda é uma opção mais sábia daqui para frente, pois tenho a sensação de que posso ter mais problemas relacionados ao uso do Snow Leopard / um sistema operacional mais antigo?

De qualquer forma, obrigado novamente pelo apoio nesta questão!

aviso typeid é inofensivo, foi corrigido mais tarde - veja https://github.com/sass/libsass/issues/1523

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

Isso é algo mais sério, você pode relatar isso para as pessoas que mantêm o jpeg-tran.

Muito provavelmente você precisa apontar de alguma forma para o montador que funciona; algo estranho está acontecendo aqui.

Basta instalar as dependências de desenvolvimento e tentar executar npm test contra o node-sass, espero que funcione!

@fivedoor Estou passando exatamente pelo mesmo problema. tentando mudar o compilador para clang. Por favor, você pode me dizer os passos de como fazê-lo. Obrigado!

Também tentei instalar a versão posterior do clang usando
brew install --with-clang llvm

mas estou recebendo o erro abaixo. Sou iniciante e preciso muito de ajuda!

shyam-molugus-macbook-5:pulses Shyam$ brew install --with-clang llvm
Aviso: você está usando o OS X 10.6.
Nós (e a Apple) não fornecemos suporte para esta versão antiga.
Você pode encontrar falhas de construção ou outras quebras.
==> Baixando http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
Já baixado: /Users/Shyam/Library/Caches/Homebrew/llvm-3.6.2.tar.xz
==> Baixando http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
Já baixado: /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 linhas de /Users/Shyam/Library/Logs/Homebrew/llvm/01.cmake:

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

O CMake não poderá gerar corretamente este projeto.
Pilha de chamadas (chamada mais recente primeiro):
CMakeLists. txt:25 (projeto)

-- Configuração incompleta, ocorreram erros!
Consulte também "/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeOutput.log".
Consulte também "/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeError.log".

LEIA ISTO: https://git.io/brew-troubleshooting
Se relatar este problema, faça-o em (não Homebrew/brew):
https://github.com/Homebrew/homebrew-core/issues

Esses problemas em aberto também podem ajudar:
llvm 3.8.0 https://github.com/Homebrew/homebrew-core/pull/1593
llvm e openmp https://github.com/Homebrew/homebrew-core/issues/1254

@smolugu bem, isso não tem relação com este projeto. Você está praticamente sozinho, pois as mensagens dizem que a versão do seu sistema operacional não é suportada. Você pode tentar pedir ajuda na comunidade brew. Atualizar seu cmake pode ajudar, talvez.

@saper Obrigado! Eu esperava obter ajuda aqui, pois @fivedoor estava tendo o mesmo problema e usando o mesmo OS X. Tentarei novamente após atualizar o cmake.

@smologu
Apenas recapitulando as coisas principais das notas que fiz sobre o que fiz.
Já faz um tempo, então espero que seja claro e ajude:

// Siga o conselho em https://github.com/nodejs/node-gyp/issues/906
// instala o gcc48

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

// exclui a pasta node-gyp novamente

$ which clang
/usr/bin/clang

//confirma o caminho disponível

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

// encontre qual é o caminho completo para clang e clang++ e use-o em vez disso
// https://github.com/sass/libsass/issues/1998#issuecomment -211099908

// verifica as versões disponíveis do clang
$ port search clang

//e instala
$ sudo port install clang-3.6

// parecia funcionar, então verifique

$ port select --list clang

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

// parece bom então selecione 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.

// Sucesso
//verifica atualizado - sucesso

//tenta definir o local de exportação

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

// Sucesso

Acho que você @fivedoor , isso é muito útil. clang 3.6 é muito novo para ser construído com um clang antigo, então precisamos dar um passo imediato - primeiro compilar gcc48 e depois usá-lo build clang-3.6.

Na verdade, o gcc48 deve ser suficiente para construir o node-sass, mas você está usando um libstdc++ moderno que vem com o gcc48 e pode acabar tendo problemas ao executar nosso código de dentro do node, que o AFAIK usa a antiga biblioteca C++ ainda fornecida pela Apple.

@fivedoor @saper Obrigado! Realmente aprecio isso. Quase desisti e pensei em comprar um novo mac. mas vou tentar suas sugestões. vai te atualizar.

Cumprimentos,

Parece que Richard Stallman ganhou contra a Apple desta vez :)

Eu tive sucesso com o seguinte em 10.6.8.

brew install gcc
CXX=gcc-5 brew install libsass

Mas CXX=gcc-5 npm install node-sass falha com um erro de sinalização. Vejo que o arquivo node-sass node-gyp adiciona sinalizadores c++ 11 para clang, que entram em conflito com os sinalizadores c++ para gcc. Seria bom se o node-sass pudesse detectar se os macs mais antigos estão realmente executando o clang ou documentar como substituir os sinalizadores.

Eu ainda tenho sucesso brew clang usando gcc-5, que leva uma eternidade em um laptop antigo. Menciono isso como um contraste com o uso do port.

Provavelmente vale a pena acrescentar que, embora eu tenha conseguido resolver o problema original neste post, encontrei mais problemas no futuro, que pareciam estar relacionados à execução de um sistema operacional mais antigo.

Eventualmente, instalei o el-capitan em uma unidade externa, preservando o 10.6.8 para executar alguns softwares mais antigos e como substituto. Contanto que você tenha uma máquina executando o Snow Leopard ou superior, acredito que você possa atualizar para o sistema operacional mais recente gratuitamente nessa máquina.

// Verificação de compatibilidade:
http://www.everymac.com/mac-answers/os-x-el-capitan-faq/os-x-el-capitan-compatible-macs-system-requirements.html

Isso pode parecer uma solução longa, mas usando um sistema operacional atualizado, tudo é mais rápido e eu me deparo com muito menos conflitos que precisam ser resolvidos, para que possa economizar tempo a longo prazo, desde que você não tenha uma necessidade específica para ficar correndo leopardo da neve.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

delijah picture delijah  ·  7Comentários

bertusgroenewegen picture bertusgroenewegen  ·  6Comentários

GottZ picture GottZ  ·  3Comentários

nex3 picture nex3  ·  9Comentários

xzyfer picture xzyfer  ·  7Comentários