我从RuyInstaller安装了Ruby 2.0.0和DevKit。我在创建新项目时收到错误消息:
rails new testtest -d mysql
..... a lot of output here ........
Installing mysql2 (0.3.14)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
C:/Ruby200/bin/ruby.exe extconf.rb
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
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
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... 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.
如何安装依赖项以使这个gem没有任何错误?
答案 0 :(得分:9)
在Windows上需要MySQL 32位(或MySQL Connector C)来编译mysql2
gem编译(即使您使用的是64位版本的操作系统)。
请按照以下步骤操作:
libmysql.dll
复制到%RUBY_HOME%\bin
(或者只是将MySQL 32位lib
目录添加到PATH)使用--with-mysql-lib
和--with-mysql-include
选项
gem install mysql2 -- '--with-mysql-lib="c:\path\to\32-bit-MySQL-Server\lib\opt" --with-mysql-include="c:\\path\to\32-bit-MySQL-Server\include"'
答案 1 :(得分:0)
这是我的故事。试图用devkit在windows 7上安装mysql2 gem。 首先,您需要安装连接器库和标头。 不要使用默认文件夹“Program Files”,gem无法包含带空格的文件夹。 我通过子X:\“C:\ Program File \ Mysql Connector 6 C \”对连接器文件夹进行了修改 然后使用以下cmd: gem install mysql2 - --with-mysql-dir = X:\ 然后意识到我正在使用32位ruby的64位连接器库。 重新安装连接器。 然后gem成功安装。 但未能运行,抱怨缺少mysql dll。所以,我把libmysql.dll和* .lib放到ruby \ bin文件夹中。毕竟这是能够用户mysql2的宝石。
答案 2 :(得分:0)