Nokogiri通过在install命令中指定库来实现这一目的:
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如何允许这个?
答案 0 :(得分:1)
这是使用dir_config
库的mkmf
方法。
gem install
命令使用--
之后的任何参数作为构建命令的参数,因此它们会传递给extconf.rb
。
请注意,您仍然需要使用have_library
或find_library
才能真正链接到图书馆。