2012-10-02 15 views
5

Tôi đang viết một thành phần XPCOM. Tôi có tập tin IDL của tôi, nó rất đơn giản, chỉ chứa những điều sau đây:cách sử dụng xpidl (header.py, typelib.py)

#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); 
}; 

Tôi đã tải về sdk xulrunner và đang cố gắng để tạo ra tiêu đề của tôi qua các lệnh sau đây, từ thư mục chứa các tập tin trên (nsIPageSummary. IDL):

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

Khi điều này chạy, tôi nhận được thông báo sau:

$ ~/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" 

Tôi đã xác minh rằng các tệp tồn tại trong thư mục ở trên. Tôi đang sử dụng liên kết MDN (https://developer.mozilla.org/en-US/docs/XPIDL/pyxpidl) làm hướng dẫn nhưng nó không giúp ích gì nhiều. Làm cách nào để sử dụng các công cụ này?

Trả lời

5

Bạn nên xác định ~/xulrunner-sdk/idl/ như của bạn bao gồm đường dẫn:

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

Thư mục bộ nhớ cache trên Mặt khác thực sự cần có một số thư mục tạm thời như documentation gợi ý.