Error installing therubyracer gem

11,417

Solution 1

This solved the issue for me:

gem uninstall libv8
gem install therubyracer

Source:

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.

Share:
11,417
user2803152
Author by

user2803152

Updated on June 04, 2022

Comments

  • user2803152
    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 */
    
    --------------------