簡體   English   中英

sassc 捆綁器錯誤:Gem::Ext::BuildError: 錯誤:無法構建 gem 本機擴展

[英]sassc bundler error: Gem::Ext::BuildError: ERROR: Failed to build gem native extension

系統:

  • 操作系統:Mac High Sierra (10.13.6)
  • Ruby:2.5.3
  • 導軌:5.1.6
  • 捆綁器:1.16.4

為包含對具有本機擴展的 sassc 2.0.0 的依賴項的 Rails 應用程序運行bundle install會出現編譯錯誤。

Installing sassc 2.0.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: ~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/sassc-2.0.0/ext
~/.rvm/rubies/ruby-2.5.3/bin/ruby -rrubygems ~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/rake-12.3.2/exe/rake
RUBYARCHDIR=~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/extensions/x86_64-darwin-17/2.5.0/sassc-2.0.0
RUBYLIBDIR=~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/extensions/x86_64-darwin-17/2.5.0/sassc-2.0.0
cd libsass
make lib/libsass.so
mkdir lib
/usr/bin/clang -Wall -O2 -I ~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/sassc-2.0.0/ext/libsass/include -stdlib=libc++ -fPIC -fPIC -c -o src/cencode.o src/cencode.c
src/cencode.c:50:5: warning: declaration does not declare anything [-Wmissing-declarations]
                                __attribute__ ((fallthrough));
                                ^
src/cencode.c:64:5: warning: declaration does not declare anything [-Wmissing-declarations]
                                __attribute__ ((fallthrough));
                                ^
2 warnings generated.
c++ -Wall -O2 -std=c++0x -I ~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/sassc-2.0.0/ext/libsass/include -stdlib=libc++ -fPIC -fPIC -c -o src/ast.o src/ast.cpp
c++: warning: couldn't understand kern.osversion '17.7.0
c++: error: unrecognized command line option '-stdlib=libc++'
make: *** [src/ast.o] Error 1
rake aborted!
Command failed with status (2): [make lib/libsass.so...]
~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/sassc-2.0.0/lib/tasks/libsass.rb:31:in `block (2 levels) in <top (required)>'
~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/sassc-2.0.0/lib/tasks/libsass.rb:13:in `block (3 levels) in <top (required)>'
~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/sassc-2.0.0/lib/tasks/libsass.rb:12:in `block (2 levels) in <top (required)>'
~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/rake-12.3.2/exe/rake:27:in `<main>'
Tasks: TOP => lib/libsass.so
(See full trace by running task with --trace)

rake failed, exit code 1

Gem files will remain installed in ~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/gems/sassc-2.0.0 for inspection.
Results logged to ~/.rvm/gems/ruby-2.5.3@hyrax-app-on-wings-2019-02-01-SDC/extensions/x86_64-darwin-17/2.5.0/sassc-2.0.0/gem_make.out

An error occurred while installing sassc (2.0.0), and Bundler cannot continue.
Make sure that `gem install sassc -v '2.0.0' --source 'https://rubygems.org/'` succeeds before bundling.

研究如何解決

已嘗試 - 基於 github sassc 中的建議

最終,這建議與捆綁器分開編譯,並在再次嘗試捆綁器之前解決所有編譯錯誤。 按照上一個 ref (build-on-darwin) 中的說明,我能夠直接構建,但仍然使用 bundler 遇到相同的編譯器錯誤。

參考:

需要更新 gcc。 我嘗試使用 Homebrew 進行更新,但在/usr/local出現權限錯誤。

解決方案:

$ sudo chown -R $(whoami) $(brew --prefix)/*
$ brew upgrade gcc
$ bundle install

參考: https : //github.com/Homebrew/brew/issues/3228

在基於 Ruby 2.5.8 的 Docker CI 容器中的 Linux 上有這個問題,並用這個解決了它:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt install gcc

這解決了它:

gem install sassc --version=2.1.0 -- --disable-march-tune-native

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM