perl - 在 OpenBSD 上构建 perl 扩展模块

标签 perl openbsd perl-xs

当需要 .so 时,我应该如何在 OpenBSD 上构建 XS perl 模块文件丢失?

背景:在普通 OpenBSD 5.3 vm 安装中,我无法构建需要链接到 -lpthread 的 perl 模块. pthread.a 和 pthread.so.Maj.Min 确实存在于系统中。

但是 Makefile.PL 正在寻找 pthread.so ,这是不存在的。这对于 OpenBSD 来说很普通吗? (我可以强制 Makefile 链接到 pthread.a 并且事情工作得很好,因为它发生了。)

在 Redhat-ish Linux 环境中,我只需安装正确的 -devel RPM 并再次运行。然而,在 OpenBSD 上,我缺少一些关于开发环境的非常基本的东西。

更新 核心问题是 Dynaloader 错误检测 Makefile.PL 中的库。

最佳答案

Makefile 错误,向上游报告错误。它永远不应该寻找特定的文件。看这个例子:

$ cat test.c              
int main(){
    return 0;
}
$ gcc -lpthread -o test test.c
$ ldd test
test:
    Start            End              Type Open Ref GrpRef Name
    00000c4321600000 00000c4321a02000 exe  1    0   0      test
    00000c4521f63000 00000c4522374000 rlib 0    2   0      /usr/lib/libpthread.so.17.1
    00000c4524c1c000 00000c4525103000 rlib 0    1   0      /usr/lib/libc.so.68.2
    00000c452a100000 00000c452a100000 rtld 0    1   0      /usr/libexec/ld.so

此外,在 OpenBSD 中您不需要安装 -devel包裹。 OpenBSD 包含电池。

关于perl - 在 OpenBSD 上构建 perl 扩展模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16693785/

相关文章:

perl - 我可以安全地要求 Perl 的 DBI 而不是使用它吗?

c - ' undefined reference ' [OpenBSD 3.5 系统定义的方法]

c - 这段代码中的 XS 内存泄漏?

c - 如何在 XS 代码中逐个字符地处理字符串

perl - 我是否必须释放用 newHV 创建的 HV*?

windows - LWP/IO::Socket::SSL 失败并返回 SSL3_GET_SERVER_HELLO:错误的密码

perl - 如何按唯一键对数组值求和?

linux - 在 perl 上打印包含 utf-8 字节序列的字符串

audio - sndio sio_onmove 不回电。

c - 用条件向特定的 pthread 发出信号