Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR: Failed to build gem native extension on Mavericks

I'm attempting to run bundle in my Rails project on OSX 10.9. It fails when getting to the pg gem with this error:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.      /Users/kyledecot/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with  --with-pg-config=/path/to/pg_config checking for libpq-fe.h... yes checking for libpq/libpq-fs.h... yes checking for pg_config_manual.h... yes checking for PQconnectdb() in -lpq... yes checking for PQconnectionUsedPassword()... yes checking for PQisthreadsafe()... yes checking for PQprepare()... yes checking for PQexecParams()... yes checking for PQescapeString()... yes checking for PQescapeStringConn()... yes checking for PQescapeLiteral()... yes checking for PQescapeIdentifier()... yes checking for PQgetCancel()... yes checking for lo_create()... yes checking for pg_encoding_to_char()... yes checking for pg_char_to_encoding()... yes checking for PQsetClientEncoding()... yes checking for PQlibVersion()... yes checking for PQping()... yes checking for PQsetSingleRowMode()... yes checking for rb_encdb_alias()... yes checking for rb_enc_alias()... no checking for rb_thread_call_without_gvl()... yes checking for rb_thread_call_with_gvl()... yes checking for rb_thread_fd_select()... yes checking for rb_w32_wrap_io_handle()... no checking for PGRES_COPY_BOTH in libpq-fe.h... no checking for PGRES_SINGLE_TUPLE in libpq-fe.h... no checking for PG_DIAG_TABLE_NAME in libpq-fe.h... no checking for struct pgNotify.extra in libpq-fe.h... yes checking for unistd.h... yes checking for ruby/st.h... yes creating extconf.h creating Makefile  make "DESTDIR=" compiling gvl_wrappers.c clang: warning: argument unused during compilation: '-fno-fast-math' compiling pg.c clang: warning: argument unused during compilation: '-fno-fast-math' pg.c:272:9: warning: implicit declaration of function 'PQlibVersion' is invalid in C99 [-Wimplicit-function-declaration]         return INT2NUM(PQlibVersion());                ^ In file included from pg.c:48: In file included from ./pg.h:17: In file included from /Users/kyledecot/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby.h:33: /Users/kyledecot/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:1167:21: note: instantiated from: # define INT2NUM(v) INT2FIX((int)(v))                     ^ pg.c:272:9: note: instantiated from:         return INT2NUM(PQlibVersion());                ^ pg.c:272:17: note: instantiated from:         return INT2NUM(PQlibVersion());                        ^ pg.c:375:48: error: use of undeclared identifier 'PQPING_OK'         rb_define_const(rb_mPGconstants, "PQPING_OK", INT2FIX(PQPING_OK));                                                       ^ pg.c:375:56: note: instantiated from:         rb_define_const(rb_mPGconstants, "PQPING_OK", INT2FIX(PQPING_OK));                                                               ^ pg.c:377:52: error: use of undeclared identifier 'PQPING_REJECT'         rb_define_const(rb_mPGconstants, "PQPING_REJECT", INT2FIX(PQPING_REJECT));                                                           ^ pg.c:377:60: note: instantiated from:         rb_define_const(rb_mPGconstants, "PQPING_REJECT", INT2FIX(PQPING_REJECT));                                                                   ^ pg.c:379:57: error: use of undeclared identifier 'PQPING_NO_RESPONSE'         rb_define_const(rb_mPGconstants, "PQPING_NO_RESPONSE", INT2FIX(PQPING_NO_RESPONSE));                                                                ^ pg.c:379:65: note: instantiated from:         rb_define_const(rb_mPGconstants, "PQPING_NO_RESPONSE", INT2FIX(PQPING_NO_RESPONSE));                                                                        ^ pg.c:381:56: error: use of undeclared identifier 'PQPING_NO_ATTEMPT'         rb_define_const(rb_mPGconstants, "PQPING_NO_ATTEMPT", INT2FIX(PQPING_NO_ATTEMPT));                                                               ^ pg.c:381:64: note: instantiated from:         rb_define_const(rb_mPGconstants, "PQPING_NO_ATTEMPT", INT2FIX(PQPING_NO_ATTEMPT));                                                                       ^ 1 warning and 4 errors generated. make: *** [pg.o] Error 1   Gem files will remain installed in /Users/kyledecot/.rvm/gems/ruby-2.0.0-p247@skateboxes/gems/pg-0.17.0 for inspection. Results logged to /Users/kyledecot/.rvm/gems/ruby-2.0.0-p247@skateboxes/gems/pg-0.17.0/ext/gem_make.out  An error occurred while installing pg (0.17.0), and Bundler cannot continue. Make sure that `gem install pg -v '0.17.0'` succeeds before bundling. 
like image 494
Kyle Decot Avatar asked Oct 24 '13 14:10

Kyle Decot


1 Answers

Also make sure that you've upgraded Xcode to re-install command line tools on Mavericks. In terminal type:

xcode-select --install 

Then follow the prompts.

like image 91
Andrew Kippen Avatar answered Sep 18 '22 22:09

Andrew Kippen