/usr/local/lib dizinine bazı yerel kitaplıklar yükledim.Ruby yerel bir kütüphaneyi nasıl bulabilir?
Şu anda derlemesini düzgün bir şekilde oluşturmak için gereken bir mücevher yüklemeye çalışıyorum, ancak kitaplıklarını bulamadığı için taş yapı başarısız oluyor.
Gem'ın extconf.rb dosyası kütüphaneyi have_library()
ile bulabildiğini doğrulamaya çalışır ancak bu bazı nedenlerle başarısız olur.
irb(main):003:0> require 'mkmf'
=> true
irb(main):004:0> have_library('gecodesearch')
checking for main() in -lgecodesearch... no
=> false
irb(main):005:0> ENV['LD_LIBRARY_PATH']='/usr/local/lib'
=> "/usr/local/lib"
irb(main):006:0> have_library('gecodesearch')
checking for main() in -lgecodesearch... no
=> false
irb(main):007:0> ENV['DYLD_LIBRARY_PATH']='/usr/local/lib'
=> "/usr/local/lib"
irb(main):008:0> have_library('gecodesearch')
checking for main() in -lgecodesearch... no
=> false
irb(main):009:0> have_library('libgecodesearch')
checking for main() in -llibgecodesearch... no
=> false
irb(main):010:0> ENV['C_INCLUDE_PATH']='/usr/local/lib'
=> "/usr/local/lib"
irb(main):011:0> have_library('gecodesearch')
checking for main() in -lgecodesearch... no
=> false
irb(main):012:0> ENV['PATH']='/usr/local/lib'
=> "/usr/local/lib"
irb(main):013:0> have_library('gecodesearch')
checking for main() in -lgecodesearch... no
=> false
bu sorunu çözmek için en iyi yolu nedir:
ben ortam değişkenleri ama hiçbir şey bir demet iş gibi görünüyor ayarlama çalıştı?
"$:" olarak da bilinir, hepsi çalışır: '$: <<"/usr/local/lib/mylib "' Alternatif olarak, Ruby tercümanını bir veya daha fazla ['-I'] ile çağırın (http: // www .zenspider.com/Diller/Ruby/QuickRef.html # komut satırı seçenekleri) seçenekleri: ruby -I/usr/local/lib/mylib foo.rb' – Phrogz
Ne yazık ki, hayır, bu durum bu değil 'irb (ana): 001: 0> gerektirir 'mkmf' ' => true' 'irb (ana): 002: 0> $: << "/ usr/local/lib" ' ' => ["/usr/pkg/lib/ruby/site_ruby/1.9", "/usr/pkg/lib/ruby/site_ruby/1.9/i386-netbsdelf", "/ usr/pkg/lib/ruby / site_ruby "," /usr/pkg/lib/ruby/vendor_ruby/1.9 "," /usr/pkg/lib/ruby/vendor_ruby/1.9/i386-netbsdelf ","/usr/pkg/lib/ruby / vendor_ruby "," /usr/pkg/lib/ruby/1.9 "," /usr/pkg/lib/ruby/1.9/i386-netbsdelf ","/usr/local/lib ","/usr/local/lib "]' 'irb (main): 003: 0> have_library ('gecodesearch')' ana denetleme() in -lgecodesearch ... no => false' –
Kök ekleme/usr/local/lib 'yük yoluna, librari'nin gerçek dizin/dizinlerini yükle ihtiyacın var. Ruby, yük yolundaki dizinlerin altındaki tüm dizinleri hiyerarşik olarak aramaz. – Phrogz