1

Module(::PerlArray)2つのバックエンドaとModule::PDL(に依存する可能性があります)が必要なモジュールに取り組んでいますModule。どちらもfunctions.c/.hビルドのためにファイルにアクセスする必要があります。このファイルには、モジュールに必要なかなり複雑なロジックが含まれています。モジュールごとに個別に配布するのではなく、システム上でそれを保持してから、または(ここでの複雑さを考えるとおそらく後者)Module::PPの適切なビルドフラグに追加する方法はありますか?EU::MMM::B

より視覚的に置くために

--Module--
Module.pm
Module/PerlArray.pm
Module/PerlArray.xs (#include functions.h
              #include perlarray_backend.h)
Module/src/functions.c
Module/src/perlarray_backend.c
Module/inc/functions.h
Module/inc/perlarray_backend.h

--Module::PDL--
Module/PDL.pm
Module/PDL.xs (#include functions.h /*from Module*/
               #include pdl_backend.h)
Module/src/pdl_backend.c
Module/inc/pdl_backend.h

コンパイルにより、functions.oとリンクが作成されます。フラグを適切に設定する方法は理解できると思いますが、インストール中にModuleにfunctions.cファイルを保持させる方法と、インストール時にファイルを見つける方法を教えてModule::PDLください。配置できる場所はありfunctions.c/.hますか?

4

2 に答える 2

1

DBIを見ましたか?DBDドライバーがXSコードに#includeできるいくつかの.hファイルと、DBDドライバーが呼び出すことができるライブラリをインストールします。

于 2011-10-12T17:19:00.837 に答える
0

モジュールは個別にインストールできる必要があります。つまり、前提条件の Perl モジュールがインストールされていれば (ただし、必ずしもソース形式で存在しているわけではありません)、他のモジュールのソースを参照することなく、すべてのモジュールを 1 つの分散 tar ファイルにインストールできるはずです。

オプションがあります。1 つは、1 つのソース ディレクトリで複数の分散 tar ボールを作成し、それぞれがfunction.[ch]分散ソース内の共有のコピーを持つことができるようにすることです。

もう 1 つの主なオプションは、両方のモジュールを単一の分散 tar ボールにバンドルすることです。

于 2011-10-12T16:41:13.383 に答える