0

感谢您花时间阅读本文,并希望能帮助我成功解决我的问题。

我删除了这个之前的帖子,因为它已经死了(几个小时没有答案),所以我希望能恢复它。

我试图安装一个名为 Rose::DB 的 perl 模块,经过多种方法后,我终于安装了它,但是每当我运行我的代码时,它都会告诉我找不到名为 Bit::Vector 的模块,所以我尝试安装它。

我首先没有错误地做了 Makefile.PL。然后,我尝试做 dmake... 它给了我很多行,其中大多数是这样的警告:

Vector.o:Vector.c:(.text+0x11591): undefined reference to `_imp__Perl_newXS'
Vector.o:Vector.c:(.text+0x115a0): undefined reference to `_imp__Perl_get_context'

之后,最后几行显示了这一点:

collect2: ld returned 1 exit status
dmake.exe:  Error code 129, while making 'blib\arch\auto\Bit\Vector\Vector.dll'

有人可以帮我正确安装模块吗?我真的很感激。

PS:这是查看所有行的链接: http ://www.sendspace.com/file/97pk32

PS:我正在使用 Strawberry,正在使用 ActivePerl 但给了我错误,建议使用 Strawberry。

4

2 回答 2

1

我在Windows上使用 Win32::UTCFileTime 模块遇到了同样的问题。

这可能是因为您同时安装了 Strawberry 和 ActivePerl。因此,您的 perl 配置可能是错误的。

如果你有类似的东西:

$ perl -V
...
cc='C:\STRAWB~1\c\bin\gcc.exe',...
...
ld='C:\STRAWB~1\c\bin\g++.exe', ldflags='... -L"C:\Perl\lib\CORE"...'
...

这意味着您正在尝试使用 Strawberry 的编译器/链接器和 ActivePerl 库构建 perl 模块。这可能是原因。

此外,一个简单的“hack”是将 C:\Perl临时重命名为 C:\whatever 。然后,你应该有:

$ perl -V
...
cc='gcc',...
...
ld='g++', ldflags='... -L"C:\strawberry\lib\CORE"...'
...

因此,您的链接器将能够找到 Strawberry perl CORE API 函数(_imp__Perl_*, perlguts)。它对我有用。

于 2016-07-27T10:28:16.457 回答
0

如果有两个像 Strawbery 和其他像 Dwimperl 或 activeperl 这样的 perl 安装,重命名一个不使用的,解决了我的 dmake.exe 问题:错误代码 129

于 2018-03-08T14:28:07.800 回答