簡體   English   中英

在 Apple ARM 芯片上運行時 Ruby ffi 庫錯誤

[英]Ruby ffi library error when running on Apple ARM chip

Ruby 2.6.6

我相信當任何 gem 依賴於ffi gem(在本例中為 taxjar)時,我會收到以下錯誤。

rake aborted!                                                                                                                                                
TypeError: unable to resolve type 'size_t'                                                                                                                   
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/types.rb:69:in `find_type'               
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/library.rb:585:in `find_type'      
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/library.rb:392:in `block in callback'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/library.rb:392:in `map'                                      
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/library.rb:392:in `callback'                                
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-parser-1.2.3/lib/http-parser/types.rb:311:in `<module:HttpParser>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-parser-1.2.3/lib/http-parser/types.rb:3:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-parser-1.2.3/lib/http-parser.rb:7:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-4.4.1/lib/http/response/parser.rb:3:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-4.4.1/lib/http/connection.rb:6:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-4.4.1/lib/http/client.rb:9:in `<top (required)>'                             
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-4.4.1/lib/http.rb:8:in `<top (required)>'                                  
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar/api/request.rb:2:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar/api/utils.rb:1:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar/api/api.rb:1:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar/client.rb:1:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar.rb:6:in `<top (required)>'

我猜這可以在ffi gem 的最新版本(目前在 1.9.25)上解決,但它是一些 gem 的依賴項,並且很好奇是否有人遇到過這個問題以及是否可以通過其他方式解決?

> gem dependency ffi --reverse-dependencies
Gem ffi-1.9.25
  rake (~> 10.1, development)
  rake-compiler (~> 1.0, development)
  rake-compiler-dock (~> 0.6.2, development)
  rspec (~> 2.14.1, development)
  rubygems-tasks (~> 0.2.4, development)
  Used by
    ethon-0.12.0 (ffi (>= 1.3.0))
    ffi-compiler-1.0.1 (ffi (>= 1.0.0))
    rb-inotify-0.9.10 (ffi (>= 0.5.0, < 2))

你應該簡單地重新編譯:

gem pristine ffi sassc

暫無
暫無

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

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