2011-06-16 50 views
0

我来自OSX,其中90%的时间Ruby运行得非常完美。我有一段时间没有触及它,但现在正好在Windows 7机器上工作。我试图运行一个简单的Ruby on Rails项目,但我似乎无法通过我的任何数据库设置。
我想在运行mysql但是当我试图(通过bundle installgem install mysql2)安装mysql2宝石,我得到这些错误:Ruby mysql2 gem,无法在Windows 7上构建

Installing mysql2 (0.2.9) with native extensions C:/Ruby192/lib/ruby/site_ruby/1 .9.1/rubygems/installer.rb:533:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

C:/Ruby192/bin/ruby.exe extconf.rb checking for 

rb_thread_blocking_region()... * 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.

我几乎一个完整的福利局当涉及到这样的如果有人有任何建议,请帮忙!

+0

Devkit已经安装了,它已经从一开始。我也安装了Visual Studio 2005,2008和2010。这可能是我的问题的原因吗? – 2011-06-16 12:26:36

回答

2

要安装和编译扩展,有时需要库和依赖关系的头文件。在这种情况下,您需要MySQL头文件和库来正确编译。

假设你从RubyInstaller下载Ruby和还安装了Development Kit,跟着它的installation instructions,以successfuly安装mysql2宝石,我建议你阅读我们的Troubleshooting page这样的回答:

  1. 下载MySQL连接/ C
  2. 提取物进入无空间路径
  3. 安装mysql2 gem时,提供附加选项(gem install mysql2 -v 0.2.10 -- --with-mysql-include=... --with-mysql-lib...

--with-mysql-include选项指定MySQL Connector/C的include目录的路径。 --with-mysql-lib相同,但此时指向lib目录。

不要忘了将libmysql.dll复制到您的Ruby bin目录。

希望这会有所帮助。

1

Windows上的原生扩展的问题是存在两种不同的编译器基础结构:一种基于MS VC及其Visual Studio,另一种基于MinGW(适用于Windows的Minimalist GCC)。

有Ruby本地扩展,可以使用它们中的任何一个进行编译,只支持一个。而且由于它们大多数来自某种Unix,因此mingw可能更适合MSVC。

所以你可以尝试安装mingw并使用它来编译mysql gem - 这里有一个叫做devkit的特殊软件包,它包含一个你刚才在你的ruby安装中所需的最小必要mingw安装。

我已经成功地使用devkit编译了几个本地扩展:eventmachine,linecache,bson-ext等等。在devkit中你会感觉更多的是家庭:-)(来自OSX)

+0

如果我在安装了Visual Studio的计算机上,可能会导致问题出现? – 2011-06-16 12:25:35

+0

可能是 - 它会尝试根据当前的系统配置生成make文件,并因为不知道MSVC而失败。但我猜测 - 直到我安装了MinGW后,我才遇到类似的问题。我想到的是:一些原生扩展带有MSVC和MinGW的单独版本 - 如果有为MSVC创建的MySQL gem,您可以查看一下。 – 2011-06-16 13:54:46

0

如果你的开发工具设置正确,@Tomasz提到,请确保你检查了mysql2 gem版本与windows的兼容性,我有过去曾经因为它导致问题而经历过,并且必须安装以前的版本才能正常工作。最后我记得v0.2.6是支持windows的版本。

相关问题