【问题标题】:Install Perl CPAN Net::LibIDN on Mac OS X 10.10 Yosemite在 Mac OS X 10.10 Yosemite 上安装 Perl CPAN Net::LibIDN
【发布时间】:2014-10-20 11:03:39
【问题描述】:

升级到 OS X 10.10 后,所有 CPAN Perl 模块都已删除,我在安装 Net::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 库并告诉 CPAN.pm builder 这个头文件在哪里?

【问题讨论】:

    标签: perl cpan osx-yosemite


    【解决方案1】:

    在这种情况下,您需要手动构建它,如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 或编译绝对 模块中的库路径如下:

     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 Devel::CheckLib 正确检测 libidn2 的存在。

    【讨论】:

    • TY 提供好的建议,但自述文件已被更改。方法是一样的,但现在命令是 perl Makefile.PL --with-libidn=/usr/local/lib --with-libidn-inc=/usr/local/include --disable-tld 对于我的情况。要在更新后使用自制软件安装 libidn,这很有帮助jcvangent.com/fixing-homebrew-os-x-10-10-yosemite
    猜你喜欢
    • 2016-05-16
    • 2014-07-24
    • 2014-09-02
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多