gpt4 book ai didi

c++ - Expat 未解析的外部符号

转载 作者:行者123 更新时间:2023-11-27 23:17:49 24 4
gpt4 key购买 nike

我很难找到为什么在共享库(它是 firefox xpcom 组件)中链接静态库(包含 expat 的 XMP)时出现未解析的外部符号。

我在 Windows 下使用 Windows 编译器(标志:“-Od -MDd”)和 mozilla-firefox 14。

静态库是来自 Adob​​e XMP SDK 的 XMPCore 库:构建它没有问题(expat 的源代码作为第三方库的一部分包含在内)

在构建我的 xpcom 模块时,我在链接阶段得到了这个:

symbole externe non résolu means unresolved external symbol !


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)" (??0ExpatAdapter@@QAE@_N@Z)
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)" (??0ExpatAdapter@@QAE@_N@Z)
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)" (??0ExpatAdapter@@QAE@_N@Z)
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)" (??0ExpatAdapter@@QAE@_N@Z)
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)" (??0ExpatAdapter@@QAE@_N@Z)
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)" (??0ExpatAdapter@@QAE@_N@Z)
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)" (??0ExpatAdapter@@QAE@_N@Z)
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)" (??0ExpatAdapter@@QAE@_N@Z)
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)" (??1ExpatAdapter@@UAE@XZ)
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)" (?ParseBuffer@ExpatAdapter@@UAEXPBXI_N@Z)
xmp.dll : fatal error LNK1120: 10 externes non résolus

所以我认为我的 XMP 静态构建中缺少来自 expat 的那些函数,所以我检查过使用 objdump -t 列出我发现的符号:



../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
...

包含这些功能的实现,所以我需要提示:有人可以帮我解决这个问题吗?

谢谢!

最佳答案

我发现了我的错误:来自 Adob​​e XMP SDK 的自述文件不完整,因为如果您想使用 expat (-DXML_STATIC) 构建静态库,他们忘记告诉您在编译阶段定义 XML_STATIC。希望能帮到有同样问题的人

关于c++ - Expat 未解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com