Libsass: Node-gyp g++ и ошибка libsass

Созданный на 14 апр. 2016  ·  21Комментарии  ·  Источник: sass/libsass

Я следил за руководством по установке Zurb Foundation, но столкнулся с постоянной проблемой.
$ npm установить фундамент-cli --global
успешно, но
:foundation Fivedoor$ фонд новый
воспитывает:

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

На форуме проблем с node-gyp мне сообщили, что это не ошибка node-gyp, а, возможно, проблема с libsass. Я видел подобные ошибки в других сообщениях github.

Честно говоря, будучи новичком в узле, я уверен, что, возможно, я был неумелым в реализации некоторых из предложенных решений.

Я пробовал довольно много вещей без какой-либо радости:

  • полное удаление/переустановка последнего узла & npm;
  • очистить кеш npm; установить с помощью nvm, заварить;
  • обновление git до последней версии, поддерживающей Snow Leopard;
  • npm --необязательная установка;
  • установил macports, а затем обновил GCC и G++;
  • удалить папку .node-gyp и установить заново;
  • удалите и переустановите Foundation-Cli.

Веду постоянно расширяющийся журнал устранения неполадок. Самые последние материалы на https://github.com/fivedoor/foundation-records/blob/master/my_installation_log_post_reinstall100416 .

В случае неудачи с серебряной пулей, может ли кто-нибудь посоветовать, поможет ли обновление до более поздней ОС или нет? (Я знаю, что Snow Leopard устарел, но я цеплялся за него для стабильности.) Я получил несколько предупреждений от brew о том, что «Мы (и Apple) не предоставляем поддержку для OS 10.6».

Разочаровывает то, что на данном этапе я не пытаюсь сделать что-то более «продвинутое», чем просто установить пакеты, которые мне нужны для начала работы.

  • MACOS X версии 10.6.8
  • нпм 3.8.6
  • узел v4.4.2
  • Xcode 3.2.6
  • ССЗ 4.8.5
  • г++ 4.8.5
  • нвм 0.31.0
  • git версии 1.8.4.2
  • завиток 7.19.7

Спасибо

Самый полезный комментарий

Просто, чтобы обновить пост с тем, что заставило меня пройти в конце...
Я старался
brew install --with-clang llvm
но clang --version все же вернул версию 1.7

Затем я попробовал следующее:

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

Это, казалось, делало это как
$ clang --version возвращено clang version 3.6.2 (tags/RELEASE_362/final)

Затем я обновил пути:

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

На этот раз установка завершилась успешно :)

Большое спасибо за вашу помощь и руководство меня в правильном направлении saper - это было неоценимо!

Один постскриптум -
Кажется, я получил много предупреждений во время установки.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

Я получил довольно много предупреждений от brew о поддержке 10.6.8. и до того, как вышеизложенное сработало, я был на грани отказа и установки версии el capitan (для работы в качестве диска с разделами, чтобы я мог сохранить снежного барса для других приложений)

Интересно, будет ли это все еще более мудрым вариантом в будущем, поскольку я чувствую, что могу столкнуться с дополнительными проблемами, связанными с использованием снежного барса / более старой ОС?

В любом случае еще раз спасибо за поддержку в этом вопросе!

Все 21 Комментарий

На самом деле это принадлежит https://github.com/sass/node-sass/issues , но позвольте мне сначала спросить вас: что произойдет, если вы используете clang вместо gcc?

Спасибо за ваш вклад.

Это все довольно новая для меня территория, поэтому мне, возможно, придется провести небольшое исследование по переключению компилятора.

Похоже, что с Xcode 4.2 Clang является компилятором по умолчанию для Mac OS X.

Я использую Xcode 3.2.6, самую последнюю версию, которую я мог загрузить для снежного барса.
Запустив clang --version, я вижу, что у меня установлена ​​clang версии 1.7.

Из быстрого поиска похоже, что я могу внести изменения с помощью:
option(USE_CLANG "build application with clang" ON)

Но я думаю, что мне нужно будет правильно прочитать на http://clang.llvm.org/get_started.html и протестировать сегодня вечером, а затем я смогу оставить отзыв.

Спасибо еще раз!

Закрытие, чтобы сохранить порядок в системе отслеживания проблем, поскольку это должно перейти к node-sass.
@fivedoor Не стесняйтесь сообщать о своих выводах здесь, если вы можете заставить clang работать.

Возвращаясь к отчету, я попытался переключиться на clang и все равно столкнулся с теми же ошибками.

Только на этот раз вместо строки:
g++: error: unrecognized command line option '-stdlib=libc++'
я получил
make: clang++: No such file or directory

что, возможно, предполагает, что команд, которые я использовал для переключения на clang, было недостаточно:

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

Процесс установки был очень медленным, и на этот раз было хуже всего. Установка заняла около 3,5 часов (и не удалась).

Я посмотрю, какие данные я могу получить об ошибке на форуме node-sass, и сообщу о решении, если оно появится.

@fivedoor make: clang++: No such file or directory не так уж и плох, вызов командной строки не смог найти ваш компилятор - можете ли вы попытаться узнать, каков полный путь к clang и clang++, и использовать его вместо этого? export CC=/full/path/to/clang export CXX=/full/path/to/clang++

спасибо сапер

Итак, я попытался:
Fivedoors-MacBook-Pro:~ Fivedoor$ export CC=/usr/bin/clang
Fivedoors-MacBook-Pro:~ Fivedoor$ export CXX=/usr/bin/clang++

что снова привело к той же ошибке, но с различием:
make: /usr/bin/clang++: No such file or directory

Проверка снова:
$ which clang
возвращает:
/usr/bin/clang

но
which clang++
ничего не возвращает

Из первоначального поиска я предположил, что наличие clang также означает, что clang++ доступен?
Все, что я могу найти для установки clang++, ориентировано на Ubuntu.
Есть ли у вас дальнейшие рекомендации о том, что попробовать дальше?
Спасибо!

Просто попробуйте export CXX=/usr/bin/clang Можете ли вы дважды проверить /usr/bin/clang --version , чтобы убедиться, что вы используете новый установленный clang, а не старый от Apple?

/usr/bin/clang --version
возвращает:

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

да, похоже, это версия, которая пришла с 10.6.8, я думаю

Я пробовал export CXX=/usr/bin/clang до получения предыдущих сообщений об ошибках
Спасибо

Похоже, я могу использовать brew для установки более поздней версии с
brew install --with-clang llvm
Я посмотрю, как это сделать.

Идеально!

Просто, чтобы обновить пост с тем, что заставило меня пройти в конце...
Я старался
brew install --with-clang llvm
но clang --version все же вернул версию 1.7

Затем я попробовал следующее:

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

Это, казалось, делало это как
$ clang --version возвращено clang version 3.6.2 (tags/RELEASE_362/final)

Затем я обновил пути:

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

На этот раз установка завершилась успешно :)

Большое спасибо за вашу помощь и руководство меня в правильном направлении saper - это было неоценимо!

Один постскриптум -
Кажется, я получил много предупреждений во время установки.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

Я получил довольно много предупреждений от brew о поддержке 10.6.8. и до того, как вышеизложенное сработало, я был на грани отказа и установки версии el capitan (для работы в качестве диска с разделами, чтобы я мог сохранить снежного барса для других приложений)

Интересно, будет ли это все еще более мудрым вариантом в будущем, поскольку я чувствую, что могу столкнуться с дополнительными проблемами, связанными с использованием снежного барса / более старой ОС?

В любом случае еще раз спасибо за поддержку в этом вопросе!

предупреждение о typeid безвредно, оно было исправлено позже - см. https://github.com/sass/libsass/issues/1523

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

Это что-то более серьезное, вы можете сообщить об этом людям, поддерживающим jpeg-tran.

Скорее всего, вам нужно как-то указать на ассемблер, который работает; здесь происходит что-то странное.

Просто установите зависимости для разработки и попробуйте запустить npm test против node-sass, надеюсь, это сработает!

@fivedoor У меня точно такая же проблема. пытаюсь переключить компилятор на clang. Не могли бы вы рассказать мне шаги о том, как это сделать. Спасибо!

Также пытался установить более позднюю версию clang, используя
варить установить --with-clang llvm

но я получаю следующую ошибку. Я новичок и мне очень нужна помощь!

shyam-molugus-macbook-5:импульсы Shyam$ варить установить --with-clang llvm
Предупреждение: вы используете OS X 10.6.
Мы (и Apple) не предоставляем поддержку этой старой версии.
Вы можете столкнуться с ошибками сборки или другими поломками.
==> Загрузка http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
Уже скачано: /Users/Shyam/Library/Caches/Homebrew/llvm-3.6.2.tar.xz
==> Загрузка http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
Уже скачано: /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
Последние 15 строк из /Users/Shyam/Library/Logs/Homebrew/llvm/01.cmake:

make: *** [cmTC_183c8/fast] Ошибка 2

CMake не сможет правильно сгенерировать этот проект.
Стек вызовов (сначала самый последний вызов):
CMakeLists. текст: 25 (проект)

-- Настройка не завершена, произошли ошибки!
См. также «/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeOutput.log».
См. также «/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeError.log».

ПРОЧИТАЙТЕ ЭТО: https://git.io/brew-troubleshooting
Если вы сообщаете об этой проблеме, сделайте это по адресу (не Homebrew/brew):
https://github.com/Homebrew/homebrew-core/issues

Эти открытые вопросы также могут помочь:
llvm 3.8.0 https://github.com/Homebrew/homebrew-core/pull/1593
llvm и openmp https://github.com/Homebrew/homebrew-core/issues/1254

@smolugu ну, это совершенно не связано с этим проектом. Вы в значительной степени сами по себе, так как в сообщениях говорится, что ваша версия ОС не поддерживается. Вы можете попробовать обратиться за помощью к пивному сообществу. Возможно, вам поможет обновление cmake.

@saper Спасибо! Я надеялся получить здесь помощь, поскольку у @fivedoor была такая же проблема и использовалась та же OS X. Попробую еще раз после обновления cmake.

@смологу
Просто резюмирую основные моменты из заметок, которые я сделал о том, что я сделал.
Прошло некоторое время, поэтому надеюсь, что это ясно и помогает:

// Следуйте советам на https://github.com/nodejs/node-gyp/issues/906
// устанавливаем gcc48

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

// снова удалить папку node-gyp

$ which clang
/usr/bin/clang

// подтверждаем наличие пути

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

// найти полный путь к clang и clang++ и использовать его вместо этого
// https://github.com/sass/libsass/issues/1998#issuecomment -211099908

// проверяем доступные версии clang
$ port search clang

//и устанавливаем
$ sudo port install clang-3.6

// вроде работает, так что проверяйте

$ port select --list clang

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

// выглядит хорошо, поэтому выберите 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.

// Успех
//проверить обновление - успешно

// пытаемся указать место экспорта

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

// Успех

Думаю, ты @fivedoor , это очень полезно. clang 3.6 слишком новый, чтобы его можно было собрать со старым clang, поэтому нам нужно сделать немедленный шаг — сначала собрать gcc48, а затем использовать его для сборки clang-3.6.

На самом деле gcc48 должно быть достаточно для сборки node-sass, но тогда вы используете современный libstdc++, который поставляется с gcc48, и у вас могут возникнуть проблемы при запуске нашего кода из узла, который, насколько мне известно, использует старую библиотеку C++, все еще предоставляемую Apple.

@fivedoor @saper Спасибо! Действительно ценю это. Я почти сдался и думал о покупке нового Mac. но попробую ваши предложения. обновит вас.

С уважением,

Похоже, на этот раз Ричард Столлман выиграл у Apple :)

У меня был успех со следующим на 10.6.8.

brew install gcc
CXX=gcc-5 brew install libsass

Но CXX=gcc-5 npm install node-sass завершается с ошибкой флага. Я вижу, что файл node-sass node-gyp добавляет флаги С++ 11 для clang, которые конфликтуют с флагами С++ для gcc. Было бы неплохо, если бы node-sass мог определить, действительно ли на старых маках работает clang, или задокументировать, как переопределить флаги.

Мне еще предстоит успешно brew clang с помощью gcc-5, что на старом ноутбуке занимает целую вечность. Я упоминаю об этом как о контрасте с использованием порта.

Вероятно, стоит добавить, что, хотя я смог решить исходную проблему в этом посте, я столкнулся с другими проблемами в будущем, которые, похоже, были связаны с работой более старой ОС.

В конце концов я установил el-capitan на внешний диск, сохранив 10.6.8 для запуска некоторых старых программ и в качестве запасного варианта. Если у вас есть машина под управлением Snow Leopard или выше, я считаю, что вы сможете бесплатно обновить до последней версии ОС на этой машине.

// Проверка совместимости:
http://www.everymac.com/mac-answers/os-x-el-capitan-faq/os-x-el-capitan-совместимый-macs-system-requirements.html

Это может показаться запутанным обходным путем, но при использовании обновленной ОС все работает быстрее, и я сталкиваюсь с гораздо меньшим количеством конфликтов, которые необходимо разрешить, поэтому в долгосрочной перспективе это может сэкономить время, если у вас нет конкретной потребности. остаться бегущим снежным барсом.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги