2013-03-11 2 views
0

공유 라이브러리 (정적 xMP 포함 된 XMP 포함)를 파이어 폭스 xpcom 구성 요소로 연결할 때 해결되지 않은 외부 기호가있는 이유를 찾는 데 문제가 있습니다.Expat 미확인 외부 기호

내가 윈도우 컴파일러 사용하여 Windows에서 해요 (플래그 : "-Od -MDd")와 모질라을-파이어 폭스 (14)

정적 라이브러리는 어도비 XMP의 SDK에서 XMPCore 라이브러리는 다음과 같습니다를 구축 아무런 문제가 없습니다 (해외 거주자의 소스 코드가 포함되어 타사 라이브러리의 일부로서)

내 XPCOM 모듈을 구축, 내가 연결 단계에서이있어 :

symbole externe 비 résolu되지 않은 외부 기호를 의미합니다!



../third-party/expat/lib/xmlparse.obj:  file format pe-i386 

SYMBOL TABLE: 
... 
[109](sec 5)(fl 0x00)(ty 20)(scl 2) (nx 0) 0x00000ff0 _XML_SetCommentHandler 
... 

../XMPCore/source/ExpatAdapter.obj:  file format pe-i386 

SYMBOL TABLE: 
... 
[251](sec 0)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 __imp__XML_SetCommentHandler 
... 

:


xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetCommentHandler référencé dans la fonction "public: __thiscall 
ExpatAdapter::ExpatAdapter(bool)" ([email protected]@[email protected][email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetProcessingInstructionHandler référencé dans la fonction "publi 
c: __thiscall ExpatAdapter::ExpatAdapter(bool)" ([email protected]@[email protected][email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetCdataSectionHandler référencé dans la fonction "public: __this 
call ExpatAdapter::ExpatAdapter(bool)" ([email protected]@[email protected][email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetCharacterDataHandler référencé dans la fonction "public: __thi 
scall ExpatAdapter::ExpatAdapter(bool)" ([email protected]@[email protected][email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetElementHandler référencé dans la fonction "public: __thiscall 
ExpatAdapter::ExpatAdapter(bool)" ([email protected]@[email protected][email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetNamespaceDeclHandler référencé dans la fonction "public: __thi 
scall ExpatAdapter::ExpatAdapter(bool)" ([email protected]@[email protected][email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetUserData référencé dans la fonction "public: __thiscall ExpatA 
dapter::ExpatAdapter(bool)" ([email protected]@[email protected][email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_ParserCreateNS référencé dans la fonction "public: __thiscall Exp 
atAdapter::ExpatAdapter(bool)" ([email protected]@[email protected][email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_ParserFree référencé dans la fonction "public: virtual __thiscall 
ExpatAdapter::~ExpatAdapter(void)" ([email protected]@[email protected]) 
xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_Parse référencé dans la fonction "public: virtual void __thiscall 
ExpatAdapter::ParseBuffer(void const *,unsigned int,bool)" ([email protected]@@[email protected]) 
xmp.dll : fatal error LNK1120: 10 externes non résolus 

그래서 나는 해외 거주자에서 그 기능이 그래서 내가 이걸 발견 기호를 나열하는 -t를 objdump를 사용하여 검사 한 내 XMP의 정적 빌드에서 누락되었다고 생각 이러한 기능의 구현은 힌트가 필요하므로 포함되어 있습니다 : 누군가가 도와 줄 수 있습니까?

감사합니다.

답변

3

오류가 발견되었습니다. Adobe XMP SDK의 readme 파일은 expat (-DXML_STATIC)을 사용하여 정적 라이브러리를 작성하려는 경우 컴파일 단계에서 XML_STATIC을 정의하는 것을 잊었 기 때문에 완료되지 않았습니다. 그것이 같은 문제로 다른 사람들을 도울 수 있기를 바랍니다.