2

zexy と iemlib を Pd Vanilla 0.46-7 にロードしようとすると、問題が発生します。https://github.com/electrickeyy/pd-cycloneからのサイクロンのコンパイルとインストールに問題はありませんでした。それは正常に動作します。そこで、バイナリを使用してhttps://github.com/iem-projects/pd-iemから iemlib と zexy をインストールしようとしましたが、何か問題が発生しています。パス設定で「詳細」をオンにすると、PD は使用しようとしているオブジェクトと同じ名前のファイルを探しているようです。パッチで [zexy/multiplex] を使用すると、次のようになります。

tried ~/Library/Pd/zexy/multiplex.d_fat and failed
tried ~/Library/Pd/zexy/multiplex.pd_darwin and failed
tried ~/Library/Pd/zexy/multiplex/multiplex.d_fat and failed

しかし、multiplex.d_fat は zexy.d_fat しかありません。iemlib と同じで、dollarg.d_fat や Dollarg.pd_darwin はなく、iem_mp3.d_fat、iem_t3_lib.d_fat、iemlib1.d_fat、iemlib2.d_fat のみです。これらのファイルは、外部ファイルがコンパイルされた場所であると推測しています。

deken を使用してみましたが、iemlib は .pd_darwin ファイルをインストールしますが、これは古いバージョン (?) であり、zexy はまだ zexy.d_fat をインストールしているため、そのオブジェクトをロードできません。

また、起動設定でライブラリ「zexy/zexy」をロードしようとしましたが、正常にロードされますが、次のようなメッセージが表示されます。

warning: class 'abs~' overwritten; old one renamed 'abs~_aliased'

名前空間の機能が失われているようです。[zexy/multiplex] を参照できなくなり、[multiplex] のみを使用する必要があります。これは正しい動作だと思います。

Pd は、異なる名前のファイルにあるオブジェクトを探す方法をどのように知っていますか?

何かアドバイス?

このスレッドは解決済みとしてマークされていますhttp://forum.pdpatchrepo.info/topic/9677/having-trouble-with-deken-plugin-and-zexy-library-solvedと同様の問題のように聞こえますが、私は成功していません.

4

1 に答える 1

3

zexyはマルチオブジェクト ライブラリとして構築されているため、 用の個別のバイナリはありませんzexy/multiplex。ご想像のとおり、zexy をロードする正しい方法は全体 (パッチで使用するか、スタートアップ ライブラリに[declare -lib zexy]追加する (使用する必要はありません)) であり、 abs~に関する警告を無視します。zexyzexy/zexy

読み込みがどのように機能するかについて:

  • Pd は、作成方法を知っているオブジェクトのリストを保持します。たとえば、 を作成するたびに[pack]、Pd は既知のオブジェクトのリストでpackを検索し、そこにある情報を使用して実際にオブジェクトを作成します。
  • Pd がまだ認識していないオブジェクト (例: ) を作成しようとすると、Pd はfoo[foo]という名前のライブラリ(例: ) を探し、見つかった場合はそれを「ロード」します。foo.pd_linux
  • ライブラリをロードすると、ライブラリ内の特別な関数が呼び出されます (この特別な関数はライブラリのエントリ ポイントであり、foo_setup()この場合は呼び出されます)。
  • その後、Pd は既知のオブジェクトのリストに含まれているかどうかを確認します。foo存在する場合、オブジェクトが作成されます。

これで、Pd がライブラリをロードするときに呼び出される特別な関数で魔法が行われます: この関数の主な目的は、新しいオブジェクトについて Pd に伝えることです (基本的には、「誰かがオブジェクト "foo" を要求した場合、私はオブジェクトを作成できます。 」)。zexy の特別な関数が読み込まれると、すべてのzexy オブジェクト ( を含むmultiplex) について Pd に通知されるため、Pd が zexy を読み込んだ後、[multiplex]オブジェクトの作成方法が認識されます。

特別な関数が、Pdが既に知っているオブジェクトを登録する場合 (たとえば、zexy の場合、abs~Pd が既に同じ名前の組み込みオブジェクトを持っていても、新しいオブジェクトを登録しようとします)、Pd は元のオブジェクトの名前を次のように変更します。追加する_aliasedと、新しく登録されたオブジェクトが名前を引き継ぎます。

于 2016-03-05T21:58:52.377 に答える