繁体   English   中英

Ruby mysql2 gem,无法在Windows 7上构建

[英]Ruby mysql2 gem, cannot build on Windows 7

我来自OSX,Ruby在90%的情况下都能完美运行。 我已经有一段时间没有碰过它了,并且碰巧现在正在Windows 7机器上工作。 我正在尝试运行一个简单的Ruby on Rails项目,但似乎无法超越我的任何数据库设置。
我想在mysql上运行,但是当我尝试安装mysql2 gem(通过bundle installgem install mysql2 )时,出现以下错误:

使用本机扩展C:/ Ruby192 / lib / ruby​​ / site_ruby / 1 .9.1 / ruby​​gems / installer.rb:533:在`build_extensions中的块中救援'中安装mysql2(0.2.9):错误:无法构建gem本机扩展。 (Gem :: Installer :: ExtensionBuildError)

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

rb_thread_blocking_region()... * extconf.rb失败*由于某种原因(可能缺少必要的库和/或头文件)而无法创建Makefile。 检查mkmf.log文件以获取更多详细信息。 您可能需要配置选项。

关于这种事情,我几乎是个新手,所以如果有人有任何建议,请帮忙!

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

假设您从RubyInstaller下载了Ruby,并且还安装了Development Kit并按照其安装说明进行操作 ,以成功安装mysql2 gem,建议您在我们的故障排除页面中阅读以下答案:

  1. 下载MySQL Connector / C
  2. 提取到没有空格的路径中
  3. 在安装mysql2 gem时,提供其他选项( gem install mysql2 -v 0.2.10 -- --with-mysql-include=... --with-mysql-lib...

--with-mysql-include选项include MySQL Connector / C的include目录的路径。 --with-mysql-lib但是这次指向lib目录。

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

希望这可以帮助。

Windows上本机扩展的问题在于,存在两种不同的编译器基础结构:一种基于MS VC及其Visual Studio,另一种基于MinGW(Windows的极简主义GCC)。

有Ruby本机扩展可以与其中任何一个及其他仅支持一个的一起进行编译。 而且由于它们大多数来自某种Unix,因此有可能mingw比MSVC更好。

因此,您可以尝试安装mingw并使用它来编译mysql gem-有一个名为devkit的特殊软件包,其中包含一个最小的必需mingw安装,您只需将其放入ruby安装中即可。

我成功地使用devkit编译了几个本机扩展:eventmachine,linecache,bson-ext等。 在devkit中,您会感觉到更多了:-)(来自OSX)

如果您具有@Tomasz提到的正确的devkit安装程序,请确保您检查mysql2 gem版本与Windows的兼容性,我过去曾遇到过这种问题,因此会导致问题,因此必须安装以前的版本才能使其正常运行。 最后,我记得v0.2.6是支持Windows的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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