将我的mod_perl站点从Linux主机移动到FreeBSD之后,我在日志文件中出现了这个错误:
您的供应商尚未定义POSIX宏SIGRTMIN,用于../../lib/POSIX.pm(autosplit into ../../lib/auto/POSIX/SigRt/_init.al)第993行\ n
脚本只是导入POSIX并使用一些函数(ceil等)
我该如何解决这个问题?
答案 0 :(得分:4)
FreeBSD 主要是 POSIX-compliant。例如,SIGRTMIN
中有doesn't define SIGRTMAX
和signal.h
。我们在POSIX's documentation:
此外,一些邪恶的供应商会 要求1003.1合规,但事实上 不是这样的:他们不会通过 PCTS(POSIX一致性测试套件)。 例如,一个供应商可能没有定义 EDEADLK,或errno的语义 由open(2)设置的值可能不是 完全正确。 Perl不会尝试 验证POSIX合规性。这意味着 你现在可以说成功了 “使用POSIX”,然后在你的 程序,你发现你的供应商有 松懈,没有可用的ICANON 毕竟宏。这可能是 被认为是一个错误。
eugene y的解决方案可能有效,因为它会阻止自动导出到您的命名空间,但请务必使用ceil
对POSIX::
等任何调用添加前缀。
答案 1 :(得分:3)