鉴于我正在使用Module :: Build来构建我的perl模块,我想在Build.PL中测试特定的系统库先决条件,如果找不到它们则退出并返回错误。这似乎是确保在调用编译器时满足必要先决条件的最佳方法。我可以让编译在链接时失败,但我认为在构建之前检测更好。这可能只是搜索构建系统在编译时将使用的相同lib目录,但我希望Module :: Build中有一些功能可以帮助解决这个问题。
具体来说,在我的情况下,我想验证libicu是否已安装并在编译器使用的libpath中可用。
答案 0 :(得分:5)
听起来你正在寻找Devel::CheckLib。 (对于使用ExtUtils::PkgConfig报告配置详细信息的库,还有pkg-config
。)
顺便说一句,Build.PL报告非Perl模块先决条件不可用的standard way是打印一条消息,说明缺少的内容,然后exit 0
没有< / em>致电create_build_script
。 Devel :: CheckLib提供了check_lib_or_exit
功能。
答案 1 :(得分:0)
我通常的方法是使用ExtUtils::PkgConfig(如果它是基于pkg-config
的库,或ExtUtils::CChecker来检查更难的事情,例如不使用{{1的旧库或者更精细的操作系统功能和能力。