1

我正在尝试配置捆绑器,以便构建 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 会很好,但我猜他们不再这样做了。

4

2 回答 2

1

对于下一个必须处理这个问题的可怜的 sap,答案是很多引用:

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\""
于 2015-01-13T05:49:37.700 回答
-1
bundle config --local --with-mysql-include 'C:\INC_PATH\include'
bundle config --local --with-mysql-lib 'C:\LIB_PATH\lib'

以上将配置指令存储在.bundle/config文件的当前目录中。运行这两个指令后,尝试 normal build install。希望能帮助到你。

更多信息

于 2013-09-06T07:51:02.340 回答