2014-10-20 83 views
2

升级到OS X后10.10所有CPAN Perl模块已被删除,我遇到一个问题,安装的Net :: libidn这个:安装Perl CPAN的Net :: 10.10的libidn约塞米蒂

sudo cpan -i Net::LibIDN 
... 
CPAN.pm: Building T/TH/THOR/Net-LibIDN-0.12.tar.gz 
__test1.c:1:10: fatal error: 'idna.h' file not found 

但我已安装使用的libidn自制:

locate libidn 
/usr/local/Library/Formula/libidn.rb 
/usr/local/lib/libidn.11.dylib 
/usr/local/lib/libidn.a 
/usr/local/lib/libidn.dylib 
/usr/local/lib/libidn.la 
/usr/local/lib/pkgconfig/libidn.pc 
/usr/local/share/info/libidn-components.png 
/usr/local/share/info/libidn.info 

和:

locate idna.h 
/usr/local/Cellar/icu4c/52.1/include/unicode/idna.h 
/usr/local/Cellar/icu4c/52.1/include/unicode/uidna.h 
/usr/local/include/idna.h 

如何安装这个CPAN库和Te这个头文件是CPAN.pm生成器吗?

回答

0

你需要建立这种在这种情况下手动,如README说:


如果GNU Libidn2您当地版本的安装在非标准 位置,请尝试以下,而不是“ perl的Build.PL“:

perl Build.PL --extra_compiler_flags=-I/path/include --extra_linker_flags="-L/path/lib -lidn2" 

如果您的运行时库搜索路径不包含libidn2,你 可能要设置LD_LIBRARY_PATH或编译的绝对 库p ATH到像模块如下:

LD_LIBRARY_PATH=/path/lib perl Build.PL --extra_compiler_flags=-I/path/include --extra_linker_flags="-L/path/lib -lidn2" 

LD_LIBRARY_PATH=/path/lib perl Build.PL --extra_compiler_flags=-I/path/include --extra_linker_flags="-L/path/lib -lidn2 -Wl,-rpath=/path/lib" 

设置LD_LIBRARY_PATH rpath的可能是必要的,使 杰韦利:: CheckLib正确检测libidn2的存在。

+1

TY好的建议,但README已经改变了。方法是一样的,但现在命令是perl Makefile.PL --with-libidn =/usr/local/lib --with-libidn -inc =/usr/local/include --disable -tld适用于我的情况。更新后安装自制软件libidn这是有用的http://jcvangent.com/fixing-homebrew-os-x-10-10-yosemite/ – Yoshimitsu 2014-10-20 12:22:39

+0

@Yoshimitsu很高兴你解决了你的问题 – 2014-10-21 10:23:46