2011-12-08 11 views
2

私はモジュール::ビルドを使用して私のperlモジュールをビルドしているので、Build.PLに特定のシステムライブラリの前提条件をテストして終了したい見つからない場合はエラーです。これは、コンパイラが呼び出されたときに必要な前提条件が満たされることを保証する最善の方法のようです。私はそれがリンクするときにコンパイルが失敗するようにすることができますが、私は建物の前に検出するのが良いと思います。おそらく、ビルドシステムがコンパイル時に使用するのと同じlibディレクトリを検索するだけの問題ですが、Module :: Buildにはこれを理解するのに役立つ機能がいくつかあると考えています。Build.PLでシステムライブラリの前提条件をテストする方法

具体的には、私のケースでは、libicuがインストールされ、コンパイラが使用するlibpathで利用可能であることを確認したいと思います。

+0

これは、基本的に '。/ configure'がCプログラムに対して何をするのかを基本的に試みています。 IIRCの 'configure'は、問題のライブラリを含むスタブCプログラムを作成し、コンパイルして実行します。実行されたときの状態をチェックします。それはあなたが試すことができるように聞こえるが、複雑な面では少しだ。 – CanSpice

答えて

5

Devel::CheckLibのように聞こえます。 (設定の詳細を報告するpkg-configを使用したライブラリにもExtUtils::PkgConfigあります。)

ところで

、Build.PL用standard way非Perlのモジュールの前提条件では利用できないということです報告して、それは何が不足しているかを説明するメッセージを印刷しますexit 0を呼び出さずにcreate_build_scriptを呼び出します。 Devel :: CheckLibはそれを行うためのcheck_lib_or_exit関数を提供します。

+0

CheckLibは有望そうです - 私はそれを撃つでしょう。ありがとう。 –

0

私の通常のアプローチは、そのようなpkg-configを使用していない古いライブラリ、またはより微妙なOSの機能や能力など、より困難なもの、をチェックするExtUtils::CCheckerpkg-configベースのライブラリだ場合、またはExtUtils::PkgConfigを使用することです。

関連する問題