Tôi đang cố gắng cài đặt các phiên bản đá quý sau trên Mavericks
- libv8 (3.16.14.3)
- therubyracer (0,12.1)
Rõ ràng là đá quý therubyracer phụ thuộc vào libv8.
1) Cài đặt libv8
Libv8 là gì? Một chút nghiên cứu của tôi dường như chỉ ra rằng đó là một loại thư viện javascript nào đó được Google Chrome sử dụng?
Tôi đã gặp sự cố khi cài đặt nó, nhưng bài đăng tuyệt vời này có cả lỗi của tôi và một câu trả lời được giải thích rõ ràng về cách vượt qua nó.
Vì vậy, tôi đã cài đặt libv8
với
gem install libv8 -- --with-system-v8
Tôi hiểu rằng điều này cài đặt gem nhưng sử dụng cài đặt hệ thống cục bộ của tôi của thư viện v8 thay vì ... phiên bản đi kèm với gem? Dù bằng cách nào, nó đã thành công.
2) Cài đặt bộ lọc bụi
Trong bước tiếp theo, tôi gặp sự cố khi cài đặt therubyracer
gem. Tôi không chắc viên ngọc này làm gì, chỉ là nó phụ thuộc vào một dự án đường ray mà tôi đang cố gắng thực hiện bundle install
.
Nó mang lại cho tôi lỗi sau:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--without-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in
'configure': You have chosen to use the version of V8 found
on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundled with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.3 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location
thanks,
The Mgmt
from /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/therubyracer-0.12.1 for inspection.
Results logged to /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/extensions/x86_64-darwin-13/1.9.1/therubyracer-0.12.1/gem_make.out
Từ những gì tôi có thể thu thập, tôi đã chọn cài đặt libv8
bằng thư viện V8 cục bộ của mình thay vì những gì được cung cấp libv8
, nhưng giờ không thể định vị cài đặt cục bộ đó.
- Làm cách nào để kiểm tra xem tôi có thực sự đã cài đặt V8 hay không và làm cách nào để xác định vị trí của nó?
- Tôi đã thử một số cờ được chỉ định, không có cờ nào trong số chúng dường như trỏ viên ngọc đến đúng thư mục cài đặt
- Đây có thể là một chủ đề riêng biệt, nhưng là
extconf.rb
gì? Tôi đã thấy nó ở một vài nơi. Và nó đang cố gắng làm gì vớigcc
trình biên dịch cụ thể?
Cảm ơn!!
BIÊN TẬP:
Tôi đã thử giải pháp gỡ cài đặt libv8 này và cài đặt lại qua
brew install
. Nó cũng đã được đề cập trong một vài câu hỏi tương tự. Không may mắn.Tôi cũng đã thử
CC
,CXX
vàCPP
các biến môi trường như đã mô tả ở đây , mặc dù tôi không nghĩ rằng có bất kỳ tác dụng vì nó đã được chọn lên tôigcc v4.6
biên dịch.