0

Nokogiri 通过在安装命令中指定库来实现这一点:

gem install nokogiri -- --with-xml2-lib=/home/joe/builds/lib 
                    --with-xml2-include=/home/joe/builds/include/libxml2 
                    --with-xslt-lib=/home/joe/builds/lib 
                    --with-xslt-include=/home/joe/builds/include

我对 Nokogiri 的源代码做了一些挖掘,试图找出它们如何允许这些选项从命令传递到实际的构建/安装。

我注意到 Rake::ExtensionTask 和 mini_portile 的使用,但是它们的使用似乎仅限于在其代码中在 Windows 系统上进行交叉编译。

我可以在我的 gem 中添加一些代码来允许用户在安装时指定他们想要链接的库吗?nokogiri 是如何允许这样做的?

4

1 回答 1

1

这是使用库的dir_config方法mkmf

gem install命令使用后面的任何参数--作为 build 命令的参数,因此它们会传递给您的extconf.rb.

请注意,您仍然需要使用have_libraryorfind_library才能实际链接到库。

于 2012-04-13T21:42:23.287 回答