You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Version 0.11 no longer compiles on Windows using mingw32 + mysy. Trace back is below. The issue is that the linking line is not including the correct libraries. It is possible to work around by doing this:
export CROSS_COMPILING=true
$ gem update pg --platform=ruby
Fix is easy, in the extconf.rb file check for CROSS_COMPILING or mingw or mswin.
Thanks,
Charlie
$ gem update pg --platform=ruby
Updating installed gems
Updating pg
Fetching: pg-0.11.0.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
c:/MinGW/local/ruby/bin/ruby.exe extconf.rb
checking for pg_config... yes
Using config values from c:\MinGW\local\bin/pg_config.exe
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.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 PQgetCancel()... yes
checking for lo_create()... yes
checking for pg_encoding_to_char()... yes
checking for PQsetClientEncoding()... yes
checking for struct pgNotify.extra in libpq-fe.h... yes
checking for unistd.h... yes
creating extconf.h
creating Makefile
make
gcc -I. -I. -Ic:/MinGW/local/ruby/lib/ruby/1.8/i386-mingw32 -I. -DRUBY_EXTCONF_H=\"extconf.h\" -Ic:/MinGW/local/include -g -O2 -c compat.c
gcc -I. -I. -Ic:/MinGW/local/ruby/lib/ruby/1.8/i386-mingw32 -I. -DRUBY_EXTCONF_H=\"extconf.h\" -Ic:/MinGW/local/include -g -O2 -c pg.c
gcc -shared -s -o pg_ext.so compat.o pg.o -L. -Lc:/MinGW/local/ruby/lib -L. -Lc:/MinGW/local/lib -Wl,--enable-auto-image-base,--enable-auto-import,--export-all -lmsvcrt-ruby18 -lpq -lshell32 -lwsock32
pg.o: In function `create_crt_fd':
c:/MinGW/local/ruby/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/pg.c:2031: undefined reference to `WSADuplicateSocketA@12'
c:/MinGW/local/ruby/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/pg.c:2032: undefined reference to `WSASocketA@24'
collect2: ld returned 1 exit status
make: *** [pg_ext.so] Error 1
Gem files will remain installed in c:/MinGW/local/ruby/lib/ruby/gems/1.8/gems/pg-0.11.0 for inspection.
Results logged to c:/MinGW/local/ruby/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/gem_make.out
Nothing to update
The text was updated successfully, but these errors were encountered:
Original comment by Michael Granger (Bitbucket: ged, GitHub: ged).
The 'CROSS_COMPILING' ENV var is for extconf.rb, for the binary Windows gem builds, so extconf already checks it. I suspect what's causing your compile to succeed is the line:
which is inside that conditional. I don't know enough about about Windows programming to know if more than just that library are required, but I'll try duplicating your issue and see if adding a check for RUBY_PLATFORM =~ /mswin|mingw/ will fix it.
Original report by Anonymous.
Version 0.11 no longer compiles on Windows using mingw32 + mysy. Trace back is below. The issue is that the linking line is not including the correct libraries. It is possible to work around by doing this:
export CROSS_COMPILING=true
$ gem update pg --platform=ruby
Fix is easy, in the extconf.rb file check for CROSS_COMPILING or mingw or mswin.
Thanks,
Charlie
The text was updated successfully, but these errors were encountered: