Perl - DynaLoader无法定位可加载对象

t30tvxxf  于 2023-06-06  发布在  Perl
关注(0)|答案(2)|浏览(259)

我是perl的新手,但我有一个perl脚本,需要大量的模块来工作,所有这些模块都在文件夹lib/中找到,当我试图运行脚本时,它开始加载模块(使用x;)脚本在调用dynaloader x时失败;说找不到模块x @INC的可加载对象,然后我发现这些模块有dynaloader找不到的共享对象(.so)文件,其名称都是以libx.so的形式出现的,它们位于.pm文件的同一个文件夹中。所以问题是我如何让dynaloader加载模块和共享库。
任何帮助将不胜感激。p.s:-我正在通过cygwin运行脚本。- 这些模块是本地化模块,我没有它们的makefile.pl,我也拿不到。

fruv7luv

fruv7luv1#

cygwin网站首页
Cygwin不是:
一种在Windows上运行原生Linux应用程序的方法。如果希望应用程序在Windows上运行,则必须从源代码重新生成应用程序。
一种神奇地使本机Windows应用程序了解UNIX®功能(如信号、ptys等)的方法。同样,如果你想利用Cygwin的功能,你需要从源代码构建你的应用程序。
因为你的共享库是ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped,你有一个为Unix/Linux 32位构建的包。它不能在Cygwin/Windows上运行。
在Windows上,格式为PE 32

$ file /usr/bin/cygreadline7.dll
/usr/bin/cygreadline7.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows
$ file /cygdrive/c/windows/system32/kernel32.dll
/cygdrive/c/windows/system32/kernel32.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows
xzv2uavs

xzv2uavs2#

您只需要导出所有的Perl路径从您的服务器到服务器的配置文件
export PERLLIB=/sbcimp/run/pd/.../cpan pat export PERLLIB=$PERLLIB:/app/localstorage/path到perl lib cpan lib和oracle lib包括所有路径

相关问题