将我的 mod_perl 站点从 Linux 主机移到 FreeBSD 后,日志文件中出现以下错误:
您的供应商尚未定义 POSIX 宏 SIGRTMIN,用于 ../../lib/POSIX.pm(自动拆分为 ../../lib/auto/POSIX/SigRt/_init.al)第 993 行\n
该脚本仅导入 POSIX 并利用一些功能(ceil 等)
我该如何解决这个问题?
FreeBSD大多是 POSIX 兼容的。例如,它没有定义 SIGRTMIN
andSIGRTMAX
在它的signal.h
. 我们在POSIX 的文档中被警告过:
此外,一些邪恶的供应商会声称符合 1003.1,但实际上并非如此:他们不会通过 PCTS(POSIX 合规性测试套件)。例如,一个供应商可能没有定义 EDEADLK,或者 open(2) 设置的 errno 值的语义可能不太正确。Perl 不会尝试验证 POSIX 合规性。这意味着你现在可以成功地说“使用 POSIX”,然后在你的程序中你发现你的供应商一直很松懈,毕竟没有可用的 ICANON 宏。这可能被解释为一个错误。
eugene y的解决方案可能会起作用,因为它会阻止自动导出到您的命名空间,但请确保在任何对ceil
等的调用前加上POSIX::
.