[英]Ruby mysql2 gem, cannot build on Windows 7
我来自OSX,Ruby在90%的情况下都能完美运行。 我已经有一段时间没有碰过它了,并且碰巧现在正在Windows 7机器上工作。 我正在尝试运行一个简单的Ruby on Rails项目,但似乎无法超越我的任何数据库设置。
我想在mysql上运行,但是当我尝试安装mysql2 gem(通过bundle install
或gem install mysql2
)时,出现以下错误:
使用本机扩展C:/ Ruby192 / lib / ruby / site_ruby / 1 .9.1 / rubygems / 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,建议您在我们的故障排除页面中阅读以下答案:
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.