5

XPCOM コンポーネントの作成に取り組んでいます。私は自分の idl ファイルを持っています。これは非常に単純で、次のものだけが含まれています。

#include "nsISupports.idl"

[scriptable, uuid(4ead-ba5c-49c9-beb2=64209c7699a)]
interface nsIPageSummary : nsISupports
{
    boolean saveSummary(in nsIDOMDocument document,
                        out unsigned long numLinks,
                        out unsigned long numImages);
};

xulrunner SDK をダウンロードし、上記のファイル (nsIPageSummary.idl) を含むディレクトリから、次のコマンドを使用してヘッダーを生成しようとしています。

~/xulrunner-sdk/sdk/bin/header.py --cachedir=~/xulrunner-sdk/idl/ -o nsIPageSummary.h nsIPageSummary.idl

これを実行すると、次のメッセージが表示されます。

$ ~/xulrunner-sdk/sdk/bin/header.py --cachedir=~/xulrunner-sdk/idl -o nsIPageSummary.h nsIPageSummary.idl 
Traceback (most recent call last):
  File "~/xulrunner/xulrunner-sdk/sdk/bin/header.py", line 497, in <module>
    idl.resolve(options.incdirs, p)
  File "~/xulrunner/xulrunner-sdk/sdk/bin/xpidl.py", line 285, in resolve
    p.resolve(self)
  File "~/xulrunner-sdk/sdk/bin/xpidl.py", line 255, in resolve
    raise IDLError("File '%s' not found" % self.filename, self.location)
xpidl.IDLError: error: File 'nsISupports.idl' not found, nsIPageSummary.idl line 1:0
#include "nsISupports.idl"

上記のフォルダにファイルが存在することを確認しました。MDN リンク (https://developer.mozilla.org/en-US/docs/XPIDL/pyxpidl) をガイドとして使用していますが、あまり役に立ちません。これらのツールを使用するにはどうすればよいですか?

4

1 に答える 1

5

~/xulrunner-sdk/idl/インクルード パスとして定義する必要があります。

~/xulrunner-sdk/sdk/bin/header.py -I ~/xulrunner-sdk/idl/ ...

一方、キャッシュディレクトリは、ドキュメントが示唆するように、実際には一時ディレクトリである必要があります。

于 2012-10-04T07:10:23.567 に答える