6

Perl XS を使用して Perl に変換する C++ オブジェクトがあります。このプロセスは、Perl 5.8.5 および 5.8.7 で正常に機能します。しかし、Perl 5.10.0 を使用しようとするとすぐに、多くのコンパイル エラーが発生します。それらのほとんどは、これらの線に沿っています。

「PL_stack_max」への未定義の参照
「PL_stack_sp」への未定義の参照
「Perl_sv_2pv_flags」への未定義の参照
「Perl_sv_setref_pv」への未定義の参照

これは、何らかの理由で Perl XS が適切にリンクされていないことを示しています。5.8.5 から v5.8.7 に移行したとき、バージョンを変更して再度作成する必要がありました。

任意のヒント?

4

2 に答える 2

7

5.10.0 に移行したときに XS 拡張機能を再コンパイルしましたか?

Perl 5.10.0 をビルドしたときに後方互換性を維持するように設定しましたか? (それも可能ですか?私は後方互換性を構築しようとしたことがないので、それがオプションであるかどうかはわかりません.@Ysthはそうではないと考えています.)

Perl のメイン バージョン間で作業しているときに同様の問題を見たことがありますが、問題の原因を正確に特定できるほど最近ではありません。しかし、設定プロセスの最後のどこかで、以前のどのバージョンの Perl が XS 拡張などと互換性があるかについての質問があったことを覚えているようです。

于 2009-08-07T22:42:38.540 に答える
2

64 ビット マシンで 32 ビット Perl 5.10.0 を使用していました。問題が解決しました!回答してくれたすべての人に感謝します。

于 2009-08-14T15:07:19.957 に答える