安装mysql2 v 0.3.14 gem时出错

时间:2013-11-29 21:00:49

标签: ruby-on-rails ruby aptana3 mysql2

我正在Win7 x64机器上安装,并且很难安装mysql2。我已经完成了正确的步骤here。我已经使用Railsinstaller安装了Ruby on Rails,将.dll文件和.lib文件复制到ruby主文件夹等。以下是我的gem install命令字符串的结果:

$ gem install mysql2 -v 0.3.14 --platform=ruby -- '--with-mysql-dir="c:\MySQL-Connector-C-6.1"'
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.

c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb --with-mysql-dir="c:\MySQL-Connector-C-6.1"
checking for ruby/thread.h... no
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes

Using --with-mysql-dir=c:\MySQL-Connector-C-6.1

checking for main() in -llibmysql... yes
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes

Setting rpath to /lib

creating Makefile

make
generating mysql2-i386-mingw32.def
compiling client.c
client.c: In function 'finish_and_mark_inactive':
client.c:509:3: warning: ISO C90 forbids mixed declarations and code
compiling mysql2_ext.c
compiling result.c
result.c: In function 'rb_mysql_result_fetch_fields':
result.c:422:35: warning: comparison between signed and unsigned integer expressions
linking shared-object mysql2/mysql2.so
client.o: In function nogvl_connect':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:159: undefined reference tomys
ql_real_connect@32'
client.o: In function nogvl_init':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:151: undefined reference tomys
ql_init@4'
client.o: In function set_ssl_options':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:1098: undefined reference tomy
sql_ssl_set@24'
client.o: In function mysql_client_options':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:740: undefined reference tomys
ql_options@12'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:744: undefined reference to mys
ql_error@4'
client.o: In functionrb_mysql_info':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:268: undefined reference to mys
ql_info@4'
client.o: In functionrb_mysql_client_warning_count':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:258: undefined reference to mys
ql_warning_count@4'
client.o: In functionnogvl_do_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:371: undefined reference to mys
ql_store_result@4'
client.o: In functionrb_mysql_client_more_results':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:943: undefined reference to mys
ql_more_results@4'
client.o: In functionnogvl_select_db':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:883: undefined reference to mys
ql_select_db@8'
client.o: In functionnogvl_ping':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:914: undefined reference to mys
ql_ping@4'
client.o: In functionrb_mysql_client_thread_id':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:876: undefined reference to mys
ql_thread_id@4'
client.o: In functionrb_mysql_client_last_id':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:845: undefined reference to mys
ql_insert_id@4'
client.o: In functionnogvl_read_query_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:358: undefined reference to mys
ql_read_query_result@4'
client.o: In functionrb_mysql_client_server_info':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:805: undefined reference to mys
ql_get_server_version@4'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:806: undefined reference tomys
ql_get_server_info@4'
client.o: In function rb_mysql_client_info':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:773: undefined reference tomys
ql_get_client_version@0'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:774: undefined reference to mys
ql_get_client_info@0'
client.o: In functionrb_mysql_client_real_escape':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:663: undefined reference to mys
ql_real_escape_string@16'
client.o: In functionfinish_and_mark_inactive':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:516: undefined reference to mys
ql_free_result@4'
client.o: In functionnogvl_send_query':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:335: undefined reference to mys
ql_send_query@12'
client.o: In functionnogvl_close':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:191: undefined reference to mys
ql_close@4'
client.o: In functionrb_mysql_client_escape':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:239: undefined reference to mys
ql_escape_string@12'
client.o: In functionrb_raise_mysql2_error':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:125: undefined reference to mys
ql_error@4'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:126: undefined reference tomys
ql_sqlstate@4'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:141: undefined reference to mys
ql_errno@4'
client.o: In functionrb_connect':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:298: undefined reference to mys
ql_errno@4'
client.o: In functionrb_mysql_client_store_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:986: undefined reference to mys
ql_errno@4'
client.o: In functionrb_mysql_client_next_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:959: undefined reference to mys
ql_next_result@4'
client.o: In functionrb_mysql_client_affected_rows':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:859: undefined reference to mys
ql_affected_rows@4'
client.o: In functionrb_mysql_client_async_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:420: undefined reference to mys
ql_errno@4'
client.o: In functionrb_mysql_client_abandon_results':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:540: undefined reference to mys
ql_next_result@4'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:539: undefined reference tomys
ql_more_results@4'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:548: undefined reference to mys
ql_free_result@4'
client.o: In functionnogvl_do_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:369: undefined reference to mys
ql_use_result@4'
client.o: In functionnogvl_close':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:191: undefined reference to mys
ql_close@4'
client.o: In functionset_charset_name':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:1087: undefined reference to my
sql_options@12'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:1089: undefined reference tomy
sql_error@4'
client.o: In function init_mysql2_client':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/client.c:1137: undefined reference tomy
sql_get_client_info@0'
result.o: In function rb_mysql_result_count':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:591: undefined reference tomys
ql_num_rows@4'
result.o: In function rb_mysql_result_fetch_field':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:126: undefined reference tomys
ql_fetch_field_direct@8'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:114: undefined reference to mys
ql_num_fields@4'
result.o: In functionrb_mysql_result_fetch_fields':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:418: undefined reference to mys
ql_num_fields@4'
result.o: In functionnogvl_fetch_row':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:105: undefined reference to mys
ql_fetch_row@4'
result.o: In functionrb_mysql_result_free_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:75: undefined reference to mysq
l_free_result@4'
result.o: In functionrb_mysql_result_fetch_row':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:216: undefined reference to mys
ql_fetch_lengths@4'
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:218: undefined reference tomys
ql_num_fields@4'
result.o: In function rb_mysql_result_each':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:518: undefined reference tomys
ql_fetch_fields@4'
result.o: In function rb_mysql_result_free_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:75: undefined reference tomysq
l_free_result@4'
result.o: In function rb_mysql_result_each':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:546: undefined reference tomys
ql_fetch_fields@4'
result.o: In function rb_mysql_result_free_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:75: undefined reference tomysq
l_free_result@4'
result.o: In function rb_mysql_result_each':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:505: undefined reference tomys
ql_num_rows@4'
result.o: In function rb_mysql_result_free_result':
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\ext\mysql2/result.c:75: undefined reference tomysq
l_free_result@4'
collect2: ld returned 1 exit status
make: *** [mysql2.so] Error 1

Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.14 for inspection.
Results logged to c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.14/ext/mysql2/gem_make.out

1 个答案:

答案 0 :(得分:2)

事实证明导致这些错误的问题是32位/ 64位不匹配。要解决它,我只需卸载64位版本的MySQL Connector并安装32位版本。之后一切都编好了。感谢Aaron Stone提请我注意解决方案here

相关问题