Mysql2 Gem安装出错。 (Windows 7)中

问题描述:

我奋力安装mysql2宝石0.2.7,这是输出我得到:Mysql2 Gem安装出错。 (Windows 7)中

C:/RailsInstaller/Ruby192/bin/ruby.exe extconf.rb --with-mysql-dir=X: --with-mysql-lib=X:\lib 

--no-rdoc --no-ri 
checking for rb_thread_blocking_region()... yes 
checking for main() in -llibmysql... yes 
checking for mysql.h... yes 
checking for errmsg.h... yes 
checking for mysqld_error.h... yes 
creating Makefile 

make 
gcc -I. -IC:/RailsInstaller/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/RailsInstaller/Ruby192/include/ruby-1.9.1/ruby/backward -I/C/RailsInstaller/Ruby192/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -IX:/include -O3 -g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -Wall -funroll-loops -o client.o -c client.c 
client.c: In function 'rb_mysql_client_query': 
client.c:361:11: warning: unused variable 'r' 
gcc -I. -IC:/RailsInstaller/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/RailsInstaller/Ruby192/include/ruby-1.9.1/ruby/backward -I/C/RailsInstaller/Ruby192/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -IX:/include -O3 -g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -Wall -funroll-loops -o mysql2_ext.o -c mysql2_ext.c 
gcc -I. -IC:/RailsInstaller/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/RailsInstaller/Ruby192/include/ruby-1.9.1/ruby/backward -I/C/RailsInstaller/Ruby192/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -IX:/include -O3 -g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -Wall -funroll-loops -o result.o -c result.c 
result.c: In function 'rb_mysql_result_fetch_fields': 
result.c:318:35: warning: comparison between signed and unsigned integer expressions 
gcc -shared -s -o mysql2.so client.o mysql2_ext.o result.o -L. -LC:/RailsInstaller/Ruby192/lib -LX:\lib -LX:/lib -L. -Wl,--enable-auto-image-base,--enable-auto-import mysql2-i386-mingw32.def -lmsvcrt-ruby191 -llibmysql -lshell32 -lws2_32 
client.o: In function `nogvl_connect': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:111: undefined reference to `[email protected]' 
client.o: In function `nogvl_init': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:102: undefined reference to `[email protected]' 
client.o: In function `set_ssl_options': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:612: undefined reference to `[email protected]' 
client.o: In function `set_charset_name': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:600: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:602: undefined reference to `[email protected]' 
client.o: In function `set_connect_timeout': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:571: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:573: undefined reference to `[email protected]' 
client.o: In function `set_reconnect': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:554: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:556: undefined reference to `[email protected]' 
client.o: In function `nogvl_ping': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:530: undefined reference to `[email protected]' 
client.o: In function `rb_mysql_client_thread_id': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:522: undefined reference to `[email protected]' 
client.o: In function `rb_mysql_client_last_id': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:502: undefined reference to `[email protected]' 
client.o: In function `nogvl_store_result': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:242: undefined reference to `[email protected]' 
client.o: In function `nogvl_read_query_result': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:234: undefined reference to `[email protected]' 
client.o: In function `rb_mysql_client_server_info': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:481: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:482: undefined reference to `[email protected]' 
client.o: In function `rb_mysql_client_info': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:454: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:455: undefined reference to `[email protected]' 
client.o: In function `rb_mysql_client_escape': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:422: undefined reference to `[email protected]' 
client.o: In function `nogvl_send_query': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:222: undefined reference to `[email protected]' 
client.o: In function `nogvl_close': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:148: undefined reference to `[email protected]' 
client.o: In function `rb_raise_mysql2_error': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:77: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:78: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:92: undefined reference to `[email protected]' 
client.o: In function `rb_mysql_client_affected_rows': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:510: undefined reference to `[email protected]' 
client.o: In function `rb_mysql_client_async_result': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:266: undefined reference to `[email protected]' 
client.o: In function `nogvl_close': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:148: undefined reference to `[email protected]' 
client.o: In function `init_mysql2_client': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/client.c:640: undefined reference to `[email protected]' 
result.o: In function `rb_mysql_result_fetch_field': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:82: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:70: undefined reference to `[email protected]' 
result.o: In function `rb_mysql_result_fetch_fields': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:314: undefined reference to `[email protected]' 
result.o: In function `nogvl_fetch_row': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:61: undefined reference to `[email protected]' 
result.o: In function `rb_mysql_result_free_result': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:40: undefined reference to `[email protected]' 
result.o: In function `rb_mysql_result_fetch_row': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:133: undefined reference to `[email protected]' 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:134: undefined reference to `[email protected]' 
result.o: In function `rb_mysql_result_free_result': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:40: undefined reference to `[email protected]' 
result.o: In function `rb_mysql_result_fetch_row': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:136: undefined reference to `[email protected]' 
result.o: In function `rb_mysql_result_each': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:381: undefined reference to `[email protected]' 
result.o: In function `rb_mysql_result_free_result': 
C:\RailsInstaller\Ruby192\lib\ruby\gems\1.9.1\gems\mysql2-0.2.7\ext\mysql2/result.c:40: undefined reference to `[email protected]' 
collect2: ld returned 1 exit status 
make: *** [mysql2.so] Error 1 

任何想法?

对于轨道3在Windows上安装mysql2宝石,你可以参考一下安装的具体步骤上 -

http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

+0

感谢您的回复,我在发布后不久发现了这个指南,这是让它达到了目的,但它仍然失败。 – 2011-05-03 09:43:14

在rorguide详细对我也没有工作的过程。 我已经解决了将mysql社区服务器zip文件(win x86)中的libmysql.lib文件直接复制到gem的ext \ mysql2目录中。这似乎使它正确地找到lib。 mysql2 gem的0.3.2版本似乎在查询困难时挂起,但来自github(https://github.com/brianmario/mysql2)的master分支已修复它。

我最终建设为直Ruby扩展:

subst X: "C:\Data\MySQL" 
gem install mysql2 --platform=ruby -- -with-mysql-dir=X: --with-mysql-lib=X:\lib --with-mysql-include=X:\include 

我需要单独的include指令,因为我使用MySQL 5.5(和看起来像目录结构已经改变后5.1)