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

モジュール Win32::UTCFileTime を使用して、Windows でも同じ問題が発生しました。

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 モジュールをビルドしようとしていることを意味します。それが理由かもしれません。

また、簡単な「ハック」は、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 に答える