简体   繁体   中英

Installing mysql ruby gem in windows fails using ruby 2.0.0

Using chocolately I have installed ruby and ruby.devkit

cinst ruby
cinst ruby.devkit

I then followed the instructions on the github wiki and tested the devkit as so detailed in point 5

gem install json --platform=ruby
ruby -rubygems -e "require 'json'; puts JSON.load('[42]').inspect" 

This worked ok so I assume my devkit installation was correct. However when I try to install mysql gem like so

gem install mysql --platform=ruby -- --with-mysql-dir=C:/mysql-connector-c-noinstall-6.0.2-win32

I get the following error

This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

    C:/ruby200/bin/ruby.exe extconf.rb --with-mysql-dir=C:/mysql-connector-c-noinstall-6.0.2-win32 
checking for main() in -llibmysql... 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:/ruby200/bin/ruby
        --with-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib=${mysql-dir}/
        --with-libmysqllib
        --without-libmysqllib


Gem files will remain installed in C:/ruby200/lib/ruby/gems/2.0.0/gems/mysql-2.9.1 for inspection.
Results logged to C:/ruby200/lib/ruby/gems/2.0.0/gems/mysql-2.9.1/ext/mysql_api/gem_make.out

I've got all the paths correct and I was following this tutorial . The log file isn't much help to me but here it is.

have_library: checking for main() in -llibmysql... -------------------- no

"gcc -o conftest.exe -IC:/ruby200/include/ruby-2.0.0/i386-mingw32 -IC:/ruby200/include/ruby-2.0.0/ruby/backward -IC:/ruby200/include/ruby-2.0.0 -I. -IC:/mysql-connector-c-noinstall-6.0.2-win32/include -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -LC:/ruby200/lib -LC:\mysql-connector-c-noinstall-6.0.2-win32\lib\libmysql.dll -LC:/mysql-connector-c-noinstall-6.0.2-win32/ -L.      -lmsvcrt-ruby200  -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 */

Related questions


Note: I ended up using the mysql2 gem instead which has enough functionality for what I'm needing.


I also faced the same problem now. But fixed for ruby 2.0.0

Download mysql connector for c from hear http://dev.mysql.com/downloads/connector/c/ extract to a directory and then

gem install mysql2 --platform=ruby -- --with-mysql-dir=C:/mysql-connector-c-noinstall-6.0.2-win32

为了使mysql gem正常工作,需要以下命令进行安装

gem install mysql --platform=ruby -- --with-opt-dir=C:/mysql-connector-c-noinstall-6.0.2-win32

Another approach

Install according to your CPU either one or another:

http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-6.1.3-win32.msi http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-6.1.3-winx64.msi

Prepare a drive pointing to where you have installed C files:

subst x: "C:\Program Files\MySQL\MySQL Connector C 6.1"

or

subst x: "C:\Program Files (x86)\MySQL\MySQL Connector C 6.1"

Now run gem install, remember that you must have installed Devkit and added Ruby\\bin and devkit\\bin path in your environment PATH:

C:\Ruby\bin>gem install mysql --platform=ruby -- --with-opt-dir=x:
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-opt-dir=x:'
This could take a while...
Successfully installed mysql-2.9.1
Parsing documentation for mysql-2.9.1
Installing ri documentation for mysql-2.9.1
Done installing documentation for mysql after 1 seconds
1 gem installed

Delete the temp drive

subst x: /d

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM