我正在尝试配置捆绑器,以便构建 mysql2 gem 将必要的参数传递给 extconf。问题是,我不知道如何传递多个参数。
在我的 Gemfile 中,我只有:
gem mysql2, '= 0.3.11'
(最新版本存在一些问题,根本无法编译它,所以我使用的是 0.3.11,基于我在此处某处的另一篇文章中找到的建议。)
我试过这个:
bundle config build.mysql2 --with-mysql-include=C:\DevEnv\Tools\Ruby\mysql-connector-c-noinstall-6.0.2-winx64\include --with-mysql-lib=C:\DevEnv\Tools\Ruby\mysql-connector-c-noinstall-6.0.2-winx64\lib
我还尝试将参数引用到单个参数中:
bundle config build.mysql2 "--with-mysql-include=C:\DevEnv\Tools\Ruby\mysql-connector-c-noinstall-6.0.2-winx64\include --with-mysql-lib=C:\DevEnv\Tools\Ruby\mysql-connector-c-noinstall-6.0.2-winx64\lib"
我可以说它不起作用,因为 gem 正在向我显示实际正在使用的命令行,然后构建失败,因为它无法提供 lib):
C:/DevEnv/Tools/Ruby/Ruby200-x64/bin/ruby.exe extconf.rb --with-mysql-include=C:\DevEnv\Tools\Ruby\mysql-connector-c-noinstall-6.0.2-winx64\include
如果我只提供--with-mysql-lib
参数或交换参数的顺序,则构建会继续寻找 lib,但会因缺少包含而失败。
如果我直接将相同的标志传递给 gem,那效果很好。但这在部署时不会非常好。
其他人如何做到这一点?
PS 一个二进制 DLL 会很好,但我猜他们不再这样做了。