Libsass: خطأ Node-gyp g ++ و libsass

تم إنشاؤها على ١٤ أبريل ٢٠١٦  ·  21تعليقات  ·  مصدر: sass/libsass

لقد كنت أتبع الدليل لتثبيت مؤسسة Zurb لكنني أواجه مشكلة ثابتة.
$ npm install Foundation-CLI - global
ناجح ولكن
: Foundation fivedoor $ Foundation new
يحضر:

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 أن ما لديه لم يكن خطأ عقدة gyp ولكن ربما كان مشكلة libsass. لقد رأيت أخطاء مماثلة في مشاركات جيثب الأخرى.

لأكون صادقًا ، كوني جديدًا على العقدة ، أنا متأكد من أنه من الممكن أنني ربما أكون غير كفؤ في تنفيذ بعض الحلول المختلفة المقترحة.

لقد جربت عددًا قليلاً من الأشياء دون أي فرح:

  • إكمال إلغاء / إعادة تثبيت أحدث عقدة و 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

في حالة فشل الحل الفضي ، هل يمكن لشخص ما أن ينصحك إذا كانت الترقية إلى نظام تشغيل أحدث من المحتمل أن تساعد أم لا؟ (أعلم أن النمر الثلجي قديم ولكني تمسكت به من أجل الاستقرار.) تلقيت بعض التحذيرات من المشروب "نحن (وشركة Apple) لا نقدم الدعم لنظام التشغيل 10.6"

الشيء المحبط في هذه المرحلة هو أنني لا أحاول القيام بأي شيء "متقدم" أكثر من مجرد تثبيت الحزم التي أحتاجها للبدء.

  • إصدار MACOS X 10.6.8
  • npm 3.8.6
  • عقدة v4.4.2
  • Xcode 3.2.6
  • دول مجلس التعاون الخليجي 4.8.5
  • g ++ 4.8.5
  • nvm 0.31.0
  • إصدار بوابة 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++

هذه المرة اكتمل التثبيت بنجاح :)

شكرًا جزيلاً على مساعدتك وتوجيهي في الاتجاه الصحيح - لقد كان لا يقدر بثمن!

حاشية واحدة -
يبدو أنني تلقيت الكثير من التحذيرات أثناء التثبيت.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

تلقيت بعض التحذيرات من الشراب حول دعم الإصدار 10.6.8. وقبل ما سبق ، كان العمل على وشك التخلي عن إصدار el capitan وتثبيته (للتشغيل كمحرك مقسم حتى أتمكن من الاحتفاظ بنمط Snow leopard للتطبيقات الأخرى)

أتساءل عما إذا كان هذا لا يزال خيارًا أكثر حكمة للمضي قدمًا لأنني أشعر بأنني قد أواجه المزيد من المشكلات المتعلقة باستخدام نمر الثلج / نظام تشغيل أقدم؟

على أي حال شكرا مرة أخرى على الدعم في هذه المسألة!

ال 21 كومينتر

هذا في الواقع ينتمي إلى https://github.com/sass/node-sass/issues ، لكن دعني أسألك أولاً: ماذا يحدث إذا كنت تستخدم clang بدلاً من دول مجلس التعاون الخليجي؟

شكرا لمساهمتك saper.

هذه كلها مناطق جديدة بالنسبة لي لذا قد أحتاج إلى إجراء القليل من البحث لتحويل المترجم.

يبدو أنه من Xcode 4.2 ، Clang هو المترجم الافتراضي لنظام التشغيل Mac OS X.

أنا أستخدم Xcode 3.2.6 وهو أحدث إصدار يمكنني تنزيله من أجل Snow leopard.
من تشغيل 'clang --version' أرى أن لدي إصدار clang 1.7 مثبتًا.

من بحث سريع يبدو أنه يمكنني إحداث التغيير باستخدام:
option(USE_CLANG "build application with clang" ON)

لكنني أعتقد أنني سأحتاج إلى القراءة الصحيحة على http://clang.llvm.org/get_started.html واختبار الليلة وبعد ذلك يمكنني تقديم التعليقات.

شكرا لك مرة أخرى!

يتم الإغلاق لإبقاء أداة تعقب المشكلة مرتبة ، نظرًا لأن هذا يجب أن ينتقل إلى المصب إلى node-sass.
fivedoor لا تتردد في الإبلاغ عن النتائج التي توصلت إليها هنا على أي حال إذا كان بإمكانك تشغيل رنة.

إعادة النظر للإبلاغ حاولت التبديل إلى رنة وما زلت أصاب نفس الأخطاء إلى حد كبير.

باستثناء هذه المرة بدلاً من السطر:
g++: error: unrecognized command line option '-stdlib=libc++'
أنا أخذت
make: clang++: No such file or directory

التي ربما توحي بأن الأوامر التي استخدمتها للتبديل إلى رنة لم تكن كافية:

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 and 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 ++ موجه نحو 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 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++

هذه المرة اكتمل التثبيت بنجاح :)

شكرًا جزيلاً على مساعدتك وتوجيهي في الاتجاه الصحيح - لقد كان لا يقدر بثمن!

حاشية واحدة -
يبدو أنني تلقيت الكثير من التحذيرات أثناء التثبيت.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

تلقيت بعض التحذيرات من الشراب حول دعم الإصدار 10.6.8. وقبل ما سبق ، كان العمل على وشك التخلي عن إصدار el capitan وتثبيته (للتشغيل كمحرك مقسم حتى أتمكن من الاحتفاظ بنمط Snow leopard للتطبيقات الأخرى)

أتساءل عما إذا كان هذا لا يزال خيارًا أكثر حكمة للمضي قدمًا لأنني أشعر بأنني قد أواجه المزيد من المشكلات المتعلقة باستخدام نمر الثلج / نظام تشغيل أقدم؟

على أي حال شكرا مرة أخرى على الدعم في هذه المسألة!

تحذير 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 باستخدام
تركيب الشراب - مع رنة llvm

لكني أتلقى الخطأ أدناه. أنا مبتدئ وأحتاج حقًا إلى المساعدة!

shyam-molugus-macbook-5: نبضات Shyam $ brew install - with-clang llvm
تحذير: أنت تستخدم OS X 10.6.
نحن (وآبل) لا نقدم الدعم لهذا الإصدار القديم.
قد تواجه إخفاقات في البناء أو أعطال أخرى.
==> تنزيل 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:

جعل: *** [cmTC_183c8 / سريع] خطأ 2

لن تتمكن CMake من إنشاء هذا المشروع بشكل صحيح.
Call Stack (أحدث مكالمة أولاً):
قوائم CMakeLists. TXT: 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 كان يواجه نفس المشكلة ويستخدم نفس نظام التشغيل 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 and 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 جديدًا جدًا بحيث لا يمكن بناؤه باستخدام رنة قديمة ، لذلك نحتاج إلى اتخاذ خطوة فورية - أولاً لبناء gcc48 ثم استخدامه لبناء clang-3.6.

في الواقع ، يجب أن يكون gcc48 كافيًا لبناء node-sass ، ولكن بعد ذلك تستخدم libstdc ++ الحديث الذي يأتي مع gcc48 وقد ينتهي بك الأمر في مشكلة عند تشغيل الكود الخاص بنا من داخل العقدة ، والتي يستخدمها AFAIK مكتبة C ++ القديمة التي لا تزال توفرها Apple.

@ فايفدور saper شكرا لك! نقدر ذلك حقا. كدت أستسلم وأفكر في شراء جهاز Mac جديد. لكننا سنجرب اقتراحاتك. سوف يقوم بتحديثك.

يعتبر،

يبدو أن Richard Stallman قد فاز على Apple هذه المرة :)

لقد نجحت فيما يلي في 10.6.8.

brew install gcc
CXX=gcc-5 brew install libsass

لكن فشل CXX=gcc-5 npm install node-sass مع ظهور خطأ إشارة. أرى أن ملف node-sass node-gyp يضيف إشارات c ++ 11 لـ clang ، والتي تتعارض مع إشارات c ++ لدول مجلس التعاون الخليجي. سيكون من الرائع لو تمكنت node-sass من اكتشاف ما إذا كانت أجهزة Mac القديمة تقوم بالفعل بتشغيل clang ، أو توثيق كيفية تجاوز العلامات.

لا يزال يتعين عليّ استخدام clang brew بنجاح باستخدام gcc-5 ، والذي يستغرق وقتًا طويلاً في استخدام جهاز كمبيوتر محمول قديم. أذكر هذا على النقيض من استخدام المنفذ.

ربما يجدر إضافة أنه بينما كنت قادرًا على حل المشكلة الأصلية في هذا المنشور ، واجهت المزيد من المشكلات أسفل السطر والتي يبدو أنها مرتبطة بتشغيل نظام تشغيل أقدم.

لقد قمت في النهاية بتثبيت el-capitan على محرك أقراص خارجي ، مع الاحتفاظ بـ 10.6.8 لتشغيل بعض البرامج القديمة وكتراجع. طالما كان لديك آلة تعمل بنظام سنو ليوبارد أو أعلى ، أعتقد أنه يجب أن تكون قادرًا على التحديث إلى أحدث نظام تشغيل مجانًا على هذا الجهاز.

// فحص التوافق:
http://www.everymac.com/mac-answers/os-x-el-capitan-faq/os-x-el-capitan-comp Compatible-macs-system-requirements.html

قد يبدو هذا وكأنه عمل طويل الأمد ولكن باستخدام نظام تشغيل محدث ، كل شيء يعمل بشكل أسرع وأواجه الكثير من التعارضات التي تحتاج إلى حل ، لذلك قد يوفر الوقت على المدى الطويل بشرط ألا يكون لديك حاجة محددة للبقاء ركض نمر الثلج.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات