我是perl的新手,但我有一个perl脚本,需要很多模块才能工作,所有这些都在文件夹lib /中找到,当我尝试运行脚本并开始加载模块时(使用x;)调用dynaloader x时脚本失败;说无法找到模块x @INC的可加载对象然后我发现这些模块有共享对象(.so)文件,dynaloader无法找到它们的名字都是libx.so形式,它们在同一个文件夹中。 pm文件..所以问题是如何让dynaloader加载模块和共享库。
任何帮助将不胜感激.. P.S: 我正在通过cygwin运行脚本。 - 这些模块是语言环境模块,我没有makefile.pl,我也无法得到它。
答案 0 :(得分:0)
来自cygwin网站的第1页
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上,格式为PE32
$ 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