Ubuntu 22.04:perl ExtUtils::Embed 因 ldopts 而损坏

Ubuntu 22.04:perl ExtUtils::Embed 因 ldopts 而损坏

运行perl -MExtUtils::Embed -e ldopts结果输出不可用:

-Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.34/CORE -lperl -ldl -lm -lpthread -lc -lcrypt

事实上 libperl.so系统中的任何位置。但是,在 中有/usr/lib/x86_64-linux-gnu/libperl.so.5.34和。不仅上面的输出中缺少此目录,而且作为符号链接,或/usr/lib/x86_64-linux-gnu/libperl.so.5.34.0/usr/lib/x86_64-linux-gnulibperl.solibperl.so.5.34libperl.so.5.34.0丢失的。

-e ccopts请注意,Makefile 通常使用和的输出-e ldopts来根据环境正确设置参数,而不是对其进行硬编码。现在,由于 ExtUtils::Embed 模块损坏,可靠且可移植的构建已不可能实现。(想想,例如 dockerized 应用程序)。

这件事怎么会变得这么糟糕?如何解决?

编辑/更新:正如评论中所建议的,该libperl-dev已安装。(apt-get这么说)。

更新2:最简单的修复方法可能在软件包中,它也libperl-dev可以安装libperl.so符号链接在库的原始位置( ?)。然后不需要更改,因为它的输出会起作用,从而也保留了 Makefile 中的动态设置。/usr/local/libEmbed.pm

相关内容