查看: 3708|回复: 3

请教,编译osgEarth时无法解析外部符号如何解决?

[复制链接]

该用户从未签到

发表于 2010-9-14 21:16:29 | 显示全部楼层 |阅读模式
编译环境:VC2010,OSG svn 11750,osgEarth svn 1317,CMake 2.8.1

Link:
     正在创建库 D:/OSG/osgEarth/Build/lib/Release/osgEarth.lib 和对象 D:/OSG/osgEarth/Build/lib/Release/osgEarth.exp
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_ErrorString,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_GetErrorCode,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_GetCurrentLineNumber,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_ParserFree,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_Parse,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_SetCharacterDataHandler,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_SetElementHandler,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_SetUserData,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
XmlUtils.obj : error LNK2019: 无法解析的外部符号 __imp__XML_ParserCreate,该符号在函数 "public: static class osgEarth::XmlDocument * __cdecl osgEarth::XmlDocument::load(class std::basic_istream<char,struct std::char_traits<char> > &)" ([email=?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z]?load@XmlDocument@osgEarth@@SAPAV12@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z[/email]) 中被引用
libcurl.lib(content_encoding.obj) : error LNK2019: 无法解析的外部符号 _inflateEnd,该符号在函数 _exit_zlib 中被引用
libcurl.lib(content_encoding.obj) : error LNK2019: 无法解析的外部符号 _inflateInit2_,该符号在函数 _inflate_stream 中被引用
libcurl.lib(content_encoding.obj) : error LNK2019: 无法解析的外部符号 _inflate,该符号在函数 _inflate_stream 中被引用
libcurl.lib(content_encoding.obj) : error LNK2019: 无法解析的外部符号 _inflateInit_,该符号在函数 _Curl_unencode_deflate_write 中被引用
libcurl.lib(content_encoding.obj) : error LNK2019: 无法解析的外部符号 _zlibVersion,该符号在函数 _Curl_unencode_gzip_write 中被引用
D:\OSG\osgEarth\Build\lib\Release\osgEarth.dll : fatal error LNK1120: 14 个无法解析的外部命令

CMake中的设置如下:
osgEarth.jpg

该用户从未签到

发表于 2010-9-15 08:40:38 | 显示全部楼层
您的XML库expat配置不正确,在您的截图中您似乎用了某个预编译库的MT版本?换成MD版本再试一试

该用户从未签到

 楼主| 发表于 2010-9-15 20:00:21 | 显示全部楼层
感谢!问题解决了,重新编译了libcurl,将expat配置为改为libexpat.lib,编译通过。

原来想直接把expat静态编译到osgEarth中,所以用了libexpatMT.lib,编译不成只能用动态库了。

该用户从未签到

发表于 2012-10-25 21:55:54 | 显示全部楼层
x_wp 发表于 2010-9-15 20:00
感谢!问题解决了,重新编译了libcurl,将expat配置为改为libexpat.lib,编译通过。

原来想直接把expat静 ...

你好,我在编译过程中,也遇到了这样的问题,请问您具体是如何解决的啊?libcurl我用的curl-7.22.0版本,expat就是设置的libexpat.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表