Error installing therubyracer gem
11,417
Solution 1
This solved the issue for me:
gem uninstall libv8
gem install therubyracer
Solution 2
In my case:
gem install libv8 -v '3.16.14.15' -- --with-system-v8
gem install therubyracer -v '0.12.1' -- --with-v8-dir=/usr/local/Cellar/[email protected]/3.15.11.18_1
Solution 3
You don't need it (and I don't think it's supported, anyway). Just change your gemfile to be like this: gem 'therubyracer', platforms: :ruby
and re-run bundler.
Author by
user2803152
Updated on June 04, 2022Comments
-
user2803152 almost 2 years
I am new to ruby. When i tried to "gem install therubyracer" it shows the following error:
C:\Users\Desktop>gem install therubyracer Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing therubyracer: ERROR: Failed to build gem native extension. C:/Ruby193/bin/ruby.exe extconf.rb checking for main() in -lpthread... 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 --without-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=C:/Ruby193/bin/ruby --with-pthreadlib --without-pthreadlib --enable-debug --disable-debug C:/Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:15:in `initialize': No such file or directory - C:/Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/.location.yml (Errno::ENOENT) from C:/Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:15:in `open' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:15:in `load!' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/lib/libv8.rb:6:in `configure_makefile' from extconf.rb:32:in `<main>' Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/therubyracer-0.12.0 for inspection. Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/therubyracer-0.12.0/ext/v8/gem_make.out C:\Users\Desktop>
I tried searching in google and some other similar posts in stackoverflow but none could address this problem.
mkmf.log
have_library: checking for main() in -lpthread... -------------------- no "gcc -o conftest -IC:/Ruby193/include/ruby-1.9.1/i386-mingw32 -IC:/Ruby193/include/ruby-1.9.1/ruby/backward -IC:/Ruby193/include/ruby-1.9.1 -I. -DFD_SETSIZE=2048 -DFD_SETSIZE=2048 -O3 -fno-omit-frame-pointer -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c -L. -LC:/Ruby193/lib -L. -lmsvcrt-ruby191 -lshell32 -lws2_32 -limagehlp -lshlwapi " checked program was: /* begin */ 1: #include "ruby.h" 2: 3: #include <winsock2.h> 4: #include <windows.h> 5: int main(int argc, char **argv) 6: { 7: return 0; 8: } /* end */ "gcc -o conftest -IC:/Ruby193/include/ruby-1.9.1/i386-mingw32 -IC:/Ruby193/include/ruby-1.9.1/ruby/backward -IC:/Ruby193/include/ruby-1.9.1 -I. -DFD_SETSIZE=2048 -DFD_SETSIZE=2048 -O3 -fno-omit-frame-pointer -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c -L. -LC:/Ruby193/lib -L. -lmsvcrt-ruby191 -lpthread -lshell32 -lws2_32 -limagehlp -lshlwapi " conftest.c: In function 't': conftest.c:7:53: error: 'main' undeclared (first use in this function) conftest.c:7:53: note: each undeclared identifier is reported only once for each function it appears in checked program was: /* begin */ 1: #include "ruby.h" 2: 3: #include <winsock2.h> 4: #include <windows.h> 5: 6: /*top*/ 7: int t() { void ((*volatile p)()); p = (void ((*)()))main; return 0; } 8: int main(int argc, char **argv) 9: { 10: if (argc > 1000000) { 11: printf("%p", &t); 12: } 13: 14: return 0; 15: } /* end */ "gcc -o conftest -IC:/Ruby193/include/ruby-1.9.1/i386-mingw32 -IC:/Ruby193/include/ruby-1.9.1/ruby/backward -IC:/Ruby193/include/ruby-1.9.1 -I. -DFD_SETSIZE=2048 -DFD_SETSIZE=2048 -O3 -fno-omit-frame-pointer -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c -L. -LC:/Ruby193/lib -L. -lmsvcrt-ruby191 -lpthread -lshell32 -lws2_32 -limagehlp -lshlwapi " conftest.c: In function 't': conftest.c:7:1: warning: implicit declaration of function 'main' conftest.c:10:6: warning: 'argc' is used uninitialized in this function conftest.c:7:5: note: 'argc' was declared here c:/devkit193/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -lpthread collect2: ld returned 1 exit status checked program was: /* begin */ 1: #include "ruby.h" 2: 3: #include <winsock2.h> 4: #include <windows.h> 5: 6: /*top*/ 7: int t() { main(); return 0; } 8: int main(int argc, char **argv) 9: { 10: if (argc > 1000000) { 11: printf("%p", &t); 12: } 13: 14: return 0; 15: } /* end */ --------------------