在我的Mac OS X计算机上Darwin maci 15.6.0 Darwin Kernel Version 15.6.0
我在以下自定义目录
中安装了libxml2和libxslt /usr/local/MyLibs/libxml2-2.9.2
和libxslt
/usr/local/MyLibs/libxslt-1.1.29
现在我想使用这些库来构建我的CPANM模块XML :: LibXSLT。
This告诉我,我可以使用--configure-args
(它仍然是实验性的)。所以我做了类似的事情,
cpanm http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXSLT-1.94.tar.gz --configure-args="--cflags=-I/usr/local/libxslt-1.1.29/include -I/usr/include/libxml2 -I/usr/local/MyLibs/libxml2-2.9.2/include/libxml2 --libs=-L/usr/local/libxslt-1.1.29/lib -lxslt -lxml2 -lz -lpthread -licucore -lm -L/usr/local/MyLibs/libxml2-2.9.2/lib -lxml2 -lz -lpthread -liconv -lm" --force
但是,构建日志表明它没有使用我的自定义位置中安装的库。
我有什么不正确的事吗?
答案 0 :(得分:1)
我认为您在--cflags
参数周围缺少引号(将多个以空格分隔的参数组合在一起是必需的):
--configure-args="--cflags='-I/usr/local/libxslt-1.1.29/include -I/usr/include/libxml2 -I/usr/local/MyLibs/libxml2-2.9.2/include/libxml2'"
但是--cflags
和--libs
只是cpanm文档中的示例,甚至可能无法被发行版的Makefile.PL识别。另一个答案指出,用于XML :: LibXSLT的参数为INC="…"
和LIBS="…"
;我认为将这些内容提供给cpanm的--configure-args
应该可以:
cpanm --configure-args="INC='…' LIBS='…'"
答案 1 :(得分:0)
来自发行版的README,
Makefile.PL尝试确定正确的编译器和链接器 使用pkg-config和它的库依赖项的标志 XSLT的配置。如果失败,您可以覆盖像这样的值
perl Makefile.PL INC="..." LIBS="..."
其中INC包含编译器的标志(例如-I / some_path / include等),LIBS包含链接器标志(例如-L / some_path / lib -llibsomething ...)。
放弃cpanm
并自行安装模块可能更简单。
curl -L -o - http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXSLT-1.95.tar.gz | tar xz
cd XML-LibXSLT-1.95
perl Makefile.PL INC="..." LIBS="..."
make test
make install