2013-04-07 6 views
0

IDL을 사용하는 Firefox 확장 기능을 빌드하려고합니다. 그러나 빌드는이 오류와 함께 죽으면 : 나는 단순히 폴더에 풀고 설치 XULRunner가-SDK (20)의 최신 릴리스 버전을 사용하고XPIDL (typelib.py) 유형을 찾을 수 없음 오류

[apply] Executing 'python' with arguments: 
[apply] 'C:\Users\Dad\Documents\Sage\xulrunner-sdk/sdk/bin/typelib.py' 
[apply] '-I' 
[apply] 'C:\Users\Dad\Documents\Sage\xulrunner-sdk/idl/' 
[apply] '-o' 
[apply] 'C:\Users\Dad\Documents\Sage\build\xpi\components\sageIFeedParserListener.xpt' 
[apply] 'C:\Users\Dad\Documents\Sage\src\components\sageIFeedParserListener.idl' 
[apply] 
[apply] Traceback (most recent call last): 
[...] 
[apply] File "C:\Users\Dad\Documents\Sage\xulrunner-sdk\sdk\bin\xpidl.py", line 959, in resolve 
[apply]  self.realtype = method.iface.idl.getName(self.type, self.location) 
[apply] File "C:\Users\Dad\Documents\Sage\xulrunner-sdk\sdk\bin\xpidl.py", line 271, in getName 
[apply]  raise IDLError("type '%s' not found" % id, location) 
[apply] xpidl.IDLError: error: type 'PRInt64' not found, sageIFeedItemEnclosure.idl line 44:32 
[apply] void init(in AString link, in PRInt64 length, in AString mimeType); 

; 나는 내가 다른 것을 할 필요가 있다고 생각하지 않는다. 그러나 나는 그것에 대해 틀린가? 나는 Python 2.7.3을 가지고있다. typelib.py 호출 경로가 올바른 것 같습니다. IDL 파일 자체가 간단하며 다음과 같습니다

#include "nsISupports.idl" 

[scriptable, uuid(73C6ECE6-0D9F-474C-8959-3979D2D1CBDB)] 
interface sageIFeedItemEnclosure: nsISupports { 

    void init(in AString link, in PRInt64 length, in AString mimeType); 
} 

그리고 PRInt64가 nsISupportsPrimitives.idl에 정의되어 있음을 볼 수 있습니다. 그러나 내가 컴파일하려고하는 IDL 파일에 해당 파일을 특별히 포함하더라도 동일한 오류가 발생하므로 다른 문제가 의심됩니다.

아이디어가 있으십니까?

+0

'PRInt64'를'int64_t'로 변경하면 어떻게 될까요? – paa

+0

int64_t가 작동합니다. 그럼 그게 우리에게 무엇을 말합니까? –

+0

내 대답보기, 괜찮 으면 받아들이십시오 :) – paa

답변

0

nsrootidl.idl에 정의 된 64 비트 정수 데이터 형식은 nsiSupports.idl에 있으며 모든 곳에서 사용할 수 있습니다.

nsISupportsPrimitives.idl에 표시되는 내용은 nsISupportsPRInt64 인터페이스의 선언입니다.