Libsass: Node-gyp g++ dan kesalahan libsass

Dibuat pada 14 Apr 2016  ·  21Komentar  ·  Sumber: sass/libsass

Saya telah mengikuti panduan untuk menginstal Zurb foundation tetapi mengalami masalah yang konsisten.
$npm install foundation-cli --global
berhasil tapi
:fondasi lima pintu$ pondasi baru
memunculkan:

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

Saya diberitahu di forum masalah node-gyp bahwa itu bukan bug node-gyp tapi mungkin masalah libsass. Saya telah melihat kesalahan serupa di posting github lainnya.

Sejujurnya, karena cukup baru di node, saya yakin mungkin saya tidak kompeten dalam mengimplementasikan beberapa dari berbagai solusi yang disarankan.

Saya telah mencoba beberapa hal tanpa kegembiraan:

  • hapus instalan/ instal ulang node terbaru & npm;
  • bersihkan cache npm; instal dengan nvm, brew;
  • memperbarui git ke versi terbaru yang mendukung macan tutul salju;
  • npm --instal opsional;
  • menginstal macports dan kemudian memperbarui GCC dan G++;
  • menghapus folder .node-gyp dan menginstal ulang;
  • hapus instalan dan instal ulang foundation-cli.

Telah menyimpan log pemecahan masalah yang berkembang saat saya pergi. Hal-hal terbaru di https://github.com/fivedoor/foundation-records/blob/master/my_installation_log_post_reinstall100416

Gagal solusi peluru perak, dapatkah seseorang menyarankan jika memutakhirkan ke OS yang lebih baru kemungkinan akan membantu atau tidak? (Saya tahu macan tutul salju sudah tua tetapi saya berpegang teguh padanya untuk stabilitas.) Saya memang mendapatkan beberapa peringatan dari minuman bahwa " Kami (dan Apple) tidak menyediakan dukungan untuk OS 10.6"

Hal yang membuat frustrasi adalah pada tahap ini saya tidak mencoba melakukan sesuatu yang lebih 'maju' daripada hanya menginstal paket-paket yang saya perlukan untuk memulai.

  • MACOS X Versi 10.6.8
  • npm 3.8.6
  • simpul v4.4.2
  • Xcode 3.2.6
  • GCC 4.8.5
  • g++ 4.8.5
  • nvm 0.31.0
  • git versi 1.8.4.2
  • ikal 7.19.7

Terima kasih

Komentar yang paling membantu

Hanya untuk memperbarui posting dengan apa yang saya alami pada akhirnya ...
Saya mencoba
brew install --with-clang llvm
tetapi clang --version masih mengembalikan versi 1.7

Saya kemudian mencoba yang berikut ini:

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

Itu sepertinya melakukannya sebagai
$ clang --version dikembalikan clang version 3.6.2 (tags/RELEASE_362/final)

Saya kemudian memperbarui jalur:

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

Kali ini instalasi berhasil diselesaikan :)

Terima kasih banyak atas bantuan Anda dan membimbing saya ke arah yang benar saper - itu sangat berharga!

Satu catatan tambahan -
Sepertinya saya mendapatkan banyak peringatan selama penginstalan.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

Saya mendapat beberapa peringatan dari brew tentang dukungan untuk 10.6.8. dan sebelum yang di atas berhasil hampir menyerah dan menginstal versi el capitan (untuk dijalankan sebagai drive yang dipartisi sehingga saya dapat mempertahankan macan tutul salju untuk aplikasi lain)

Saya ingin tahu apakah itu masih merupakan pilihan yang lebih bijaksana untuk maju karena saya merasa saya mungkin mengalami lebih banyak masalah terkait dengan menggunakan macan tutul salju/ os yang lebih lama?

Pokoknya terima kasih lagi untuk dukungan pada masalah ini!

Semua 21 komentar

Ini sebenarnya milik https://github.com/sass/node-sass/issues , tapi izinkan saya bertanya dulu: apa yang terjadi jika Anda menggunakan dentang alih-alih gcc?

Terima kasih atas masukannya saper.

Ini semua adalah wilayah yang cukup baru bagi saya, jadi saya mungkin perlu melakukan sedikit riset untuk mengganti kompiler.

Sepertinya dari Xcode 4.2, Dentang adalah kompiler default untuk Mac OS X.

Saya menggunakan Xcode 3.2.6 yang merupakan versi terbaru yang dapat saya unduh untuk macan tutul salju.
Dari menjalankan 'clang --version', saya melihat bahwa saya telah menginstal dentang versi 1.7.

Dari pencarian cepat sepertinya saya dapat melakukan perubahan dengan:
option(USE_CLANG "build application with clang" ON)

Tetapi saya pikir saya perlu membaca dengan benar di http://clang.llvm.org/get_started.html dan menguji malam ini dan kemudian saya dapat memberikan umpan balik.

Terima kasih lagi!

Menutup untuk menjaga pelacak masalah tetap rapi, karena ini harus mengarah ke hilir ke node-sass.
@fivedoor Jangan ragu untuk melaporkan temuan Anda di sini jika Anda bisa membuat dentang bekerja.

Meninjau kembali untuk melaporkan, saya mencoba beralih ke dentang dan masih menemukan kesalahan yang hampir sama.

Kecuali kali ini alih-alih baris:
g++: error: unrecognized command line option '-stdlib=libc++'
saya mendapatkan
make: clang++: No such file or directory

yang mungkin menyarankan perintah yang saya gunakan untuk beralih ke dentang tidak cukup:

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

Proses instalasi sangat lambat dan kali ini adalah yang terburuk. Butuh sekitar 3,5 jam untuk menginstal untuk menjalankannya saja (dan gagal).

Saya akan melihat input apa yang bisa saya dapatkan tentang kesalahan di forum node-sass dan melaporkan solusi jika saya mendapatkannya.

@fivedoor make: clang++: No such file or directory tidak terlalu buruk, permintaan baris perintah tidak dapat menemukan kompiler Anda - dapatkah Anda mencoba mencari tahu path lengkap ke dentang dan dentang++ dan menggunakannya sebagai gantinya? export CC=/full/path/to/clang export CXX=/full/path/to/clang++

Terima kasih saper

Jadi saya mencoba:
lima pintu-MacBook-Pro:~ lima pintu$ ekspor CC=/usr/bin/dentang
lima pintu-MacBook-Pro:~ lima pintu$ ekspor CXX=/usr/bin/dentang++

yang menghasilkan kesalahan yang sama lagi tetapi dengan perbedaan:
make: /usr/bin/clang++: No such file or directory

Memeriksa lagi:
$ which clang
kembali:
/usr/bin/clang

tetapi
which clang++
tidak mengembalikan apa-apa

Dari pencarian awal saya berasumsi bahwa memiliki dentang saya juga berarti dentang ++ tersedia?
Semua yang saya temukan saat menginstal ulang dentang ++ diarahkan ke ubuntu.
Apakah Anda memiliki rekomendasi lebih lanjut tentang apa yang harus dicoba selanjutnya?
Terima kasih!

Coba saja export CXX=/usr/bin/clang Bisakah Anda memeriksa ulang /usr/bin/clang --version untuk memastikan Anda menggunakan dentang baru yang diinstal dan bukan yang lama dari Apple?

/usr/bin/clang --version
pengembalian:

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

ya, sepertinya itu adalah versi yang datang dengan 10.6.8 saya pikir

Saya mencoba export CXX=/usr/bin/clang sebelum mendapatkan pesan kesalahan sebelumnya
Terima kasih

Sepertinya saya dapat menggunakan brew untuk menginstal versi yang lebih baru dengan
brew install --with-clang llvm
Saya akan melihat untuk mencobanya

Sempurna!

Hanya untuk memperbarui posting dengan apa yang saya alami pada akhirnya ...
Saya mencoba
brew install --with-clang llvm
tetapi clang --version masih mengembalikan versi 1.7

Saya kemudian mencoba yang berikut ini:

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

Itu sepertinya melakukannya sebagai
$ clang --version dikembalikan clang version 3.6.2 (tags/RELEASE_362/final)

Saya kemudian memperbarui jalur:

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

Kali ini instalasi berhasil diselesaikan :)

Terima kasih banyak atas bantuan Anda dan membimbing saya ke arah yang benar saper - itu sangat berharga!

Satu catatan tambahan -
Sepertinya saya mendapatkan banyak peringatan selama penginstalan.
https://github.com/fivedoor/foundation-records/blob/master/installation_log_190416

Saya mendapat beberapa peringatan dari brew tentang dukungan untuk 10.6.8. dan sebelum yang di atas berhasil hampir menyerah dan menginstal versi el capitan (untuk dijalankan sebagai drive yang dipartisi sehingga saya dapat mempertahankan macan tutul salju untuk aplikasi lain)

Saya ingin tahu apakah itu masih merupakan pilihan yang lebih bijaksana untuk maju karena saya merasa saya mungkin mengalami lebih banyak masalah terkait dengan menggunakan macan tutul salju/ os yang lebih lama?

Pokoknya terima kasih lagi untuk dukungan pada masalah ini!

peringatan typeid tidak berbahaya, itu diperbaiki nanti - lihat https://github.com/sass/libsass/issues/1523

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

Ini adalah sesuatu yang lebih serius, Anda mungkin ingin melaporkan ini kepada orang-orang yang memelihara jpeg-tran.

Kemungkinan besar Anda perlu menunjuk ke assembler yang berfungsi; sesuatu yang aneh terjadi di sini.

Cukup instal dependensi pengembangan dan coba jalankan npm test terhadap node-sass, saya harap ini berhasil!

@fivedoor Saya mengalami masalah yang sama persis. mencoba mengganti kompiler ke dentang. Bisakah Anda memberi tahu saya langkah-langkah tentang cara melakukannya. Terima kasih!

Juga mencoba menginstal versi dentang yang lebih baru menggunakan
brew install --with-clang llvm

tetapi saya mendapatkan kesalahan di bawah ini. Saya seorang pemula dan sangat membutuhkan bantuan!

shyam-molugus-macbook-5:pulses Shyam$ brew install --with-clang llvm
Peringatan: Anda menggunakan OS X 10.6.
Kami (dan Apple) tidak memberikan dukungan untuk versi lama ini.
Anda mungkin mengalami kegagalan build atau kerusakan lainnya.
==> Mengunduh http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
Sudah diunduh: /Users/Shyam/Library/Caches/Homebrew/llvm-3.6.2.tar.xz
==> Mengunduh http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
Sudah diunduh: /Users/Shyam/Library/Caches/Homebrew/llvm--clang-3.6.2.tar.xz
==> cmake -G Unix Makefile /private/tmp/llvm-20160602-48463-1r6cqk/llvm-3.6.2.src
15 baris terakhir dari /Users/Shyam/Library/Logs/Homebrew/llvm/01.cmake:

buat: *** [cmTC_183c8/fast] Kesalahan 2

CMake tidak akan dapat membuat proyek ini dengan benar.
Call Stack (panggilan terakhir terlebih dahulu):
CMakeLists. txt:25 (proyek)

-- Konfigurasi tidak lengkap, terjadi kesalahan!
Lihat juga "/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeOutput.log".
Lihat juga "/tmp/llvm-20160602-48463-l64qtc/CMakeFiles/CMakeError.log".

BACA INI: https://git.io/brew-troubleshooting
Jika melaporkan masalah ini, silakan lakukan di (bukan Homebrew/brew):
https://github.com/Homebrew/homebrew-core/issues

Masalah terbuka ini juga dapat membantu:
llvm 3.8.0 https://github.com/Homebrew/homebrew-core/pull/1593
llvm dan openmp https://github.com/Homebrew/homebrew-core/issues/1254

@smolugu baik, ini sama sekali tidak terkait dengan proyek ini. Anda cukup sendirian, karena pesan mengatakan versi OS Anda tidak didukung. Anda dapat mencoba meminta bantuan di komunitas minuman. Memutakhirkan cmake Anda dapat membantu, mungkin.

@saper Terima kasih! Saya berharap mendapatkan bantuan di sini karena @fivedoor mengalami masalah yang sama dan menggunakan OS X yang sama. Akan mencoba lagi setelah memutakhirkan cmake.

@smologu
Hanya rekap hal-hal inti dari catatan yang saya buat tentang apa yang saya lakukan.
Sudah lama jadi semoga jelas & membantu :

// Ikuti saran di https://github.com/nodejs/node-gyp/issues/906
// instal gcc48

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

// hapus folder node-gyp lagi

$ which clang
/usr/bin/clang

// konfirmasi jalur yang tersedia

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

// temukan path lengkap ke dentang dan dentang++ dan gunakan sebagai gantinya
// https://github.com/sass/libsass/issues/1998#issuecomment -211099908

// periksa versi dentang yang tersedia
$ port search clang

//dan instal
$ sudo port install clang-3.6

// sepertinya berhasil jadi periksa

$ port select --list clang

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

// terlihat bagus jadi pilih 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.

// Kesuksesan
//periksa diperbarui - sukses

//coba setel lokasi ekspor

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

// Kesuksesan

Pikirkan Anda @fivedoor , itu sangat berguna. clang 3.6 terlalu baru untuk dibangun dengan clang lama, jadi kita perlu mengambil langkah segera - pertama untuk membangun gcc48 dan kemudian menggunakannya membangun clang-3.6.

Sebenarnya gcc48 seharusnya cukup untuk membangun node-sass, tetapi kemudian Anda menggunakan libstdc++ modern yang disertakan dengan gcc48 dan Anda mungkin akan mendapat masalah saat menjalankan kode kami dari dalam node, yang AFAIK menggunakan pustaka C++ lama yang masih disediakan oleh Apple.

@fivedoor @saper Terima kasih! Sangat menghargai itu. Saya hampir menyerah dan berpikir untuk membeli mac baru. tetapi akan mencoba saran Anda. akan memperbarui Anda.

Salam,

Sepertinya Richard Stallman telah menang melawan Apple kali ini :)

Saya telah sukses dengan yang berikut ini pada 10.6.8.

brew install gcc
CXX=gcc-5 brew install libsass

Tapi CXX=gcc-5 npm install node-sass gagal dengan kesalahan bendera. Saya melihat bahwa file node-sass node-gyp menambahkan flag c++11 untuk dentang, yang bertentangan dengan flag c++ untuk gcc. Akan lebih baik jika node-sass dapat mendeteksi apakah mac yang lebih lama benar-benar menjalankan dentang, atau mendokumentasikan cara mengganti flag.

Saya belum berhasil brew dentang menggunakan gcc-5, yang memakan waktu lama di laptop lama. Saya menyebutkan ini sebagai kontras dengan menggunakan port.

Mungkin perlu ditambahkan bahwa sementara saya dapat menyelesaikan masalah asli dalam posting ini, saya mengalami lebih banyak masalah di telepon yang tampaknya terkait dengan menjalankan OS yang lebih lama.

Saya akhirnya menginstal el-capitan pada drive eksternal, mempertahankan 10.6.8 untuk menjalankan beberapa perangkat lunak lama dan sebagai cadangan. Selama Anda memiliki mesin yang menjalankan macan tutul salju atau lebih tinggi, saya yakin Anda harus dapat memperbarui ke OS terbaru secara gratis di mesin itu.

// Pemeriksaan kompatibilitas:
http://www.everymac.com/mac-answers/os-x-el-capitan-faq/os-x-el-capitan-compatible-macs-system-requirements.html

Itu mungkin tampak seperti penyelesaian yang panjang lebar tetapi menggunakan OS terbaru semuanya berjalan lebih cepat dan saya menghadapi lebih sedikit konflik yang perlu diselesaikan sehingga mungkin menghemat waktu dalam jangka panjang asalkan Anda tidak memiliki kebutuhan khusus untuk tetap berlari macan tutul salju.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat