win32x64编译qgis_core提示无法解析外部符号

anran1234546 2015-08-10 04:53:14
qgis源码是从git版本库克隆的最新版,依赖包用的OSGeo4W64.
前面的cmake-gui的generate很顺利。
在用vs2008编译qgis_core项目的时候提示
正在链接...
2> 正在创建库 F:\BUILD-1\src\core\RelWithDebInfo\qgis_core.lib 和对象 F:\BUILD-1\src\core\RelWithDebInfo\qgis_core.exp
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlFreeDoc,该符号在函数 splite_free_xml_schema_cache_item 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2001: 无法解析的外部符号 xmlFreeDoc
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSchemaFree,该符号在函数 splite_free_xml_schema_cache_item 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSchemaFreeParserCtxt,该符号在函数 splite_free_xml_schema_cache_item 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlDocGetRootElement,该符号在函数 sniff_payload 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2001: 无法解析的外部符号 xmlDocGetRootElement
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 crc32,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_relations.obj) : error LNK2001: 无法解析的外部符号 crc32
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 compress,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 compressBound,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSchemaFreeValidCtxt,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSchemaValidateDoc,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSchemaNewValidCtxt,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlReadMemory,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2001: 无法解析的外部符号 xmlReadMemory
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSchemaParse,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSchemaNewDocParserCtxt,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlReadFile,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSetGenericErrorFunc,该符号在函数 gaiaXmlToBlob 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2001: 无法解析的外部符号 xmlSetGenericErrorFunc
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 uncompress,该符号在函数 gaiaXmlTextFromBlob 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlDocDumpFormatMemory,该符号在函数 gaiaXmlLoad 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlXPathFreeObject,该符号在函数 gaiaXmlGetInternalSchemaURI 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2001: 无法解析的外部符号 xmlXPathFreeObject
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlXPathFreeContext,该符号在函数 gaiaXmlGetInternalSchemaURI 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2001: 无法解析的外部符号 xmlXPathFreeContext
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlFreeNode,该符号在函数 setIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlReplaceNode,该符号在函数 setIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlAddChild,该符号在函数 setIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlNewText,该符号在函数 setIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlNewNode,该符号在函数 setIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 __imp_xmlFree,该符号在函数 gaiaXmlBlobSetFileId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSetNs,该符号在函数 addIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlNewNs,该符号在函数 addIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlAddNextSibling,该符号在函数 addIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlAddPrevSibling,该符号在函数 addIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSearchNs,该符号在函数 addIsoId 中被引用
2>spatialite.lib(gg_xml.obj) : error LNK2019: 无法解析的外部符号 xmlSearchNsByHref,该符号在函数 addIsoId 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2019: 无法解析的外部符号 xmlXPathFreeCompExpr,该符号在函数 gaiaIsValidXPathExpression 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2019: 无法解析的外部符号 xmlXPathCompile,该符号在函数 gaiaIsValidXPathExpression 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2019: 无法解析的外部符号 xmlXPathEvalExpression,该符号在函数 vxpath_eval_expr 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2019: 无法解析的外部符号 xmlXPathRegisterNs,该符号在函数 vxpath_eval_expr 中被引用
2>spatialite.lib(virtualxpath.obj) : error LNK2019: 无法解析的外部符号 xmlXPathNewContext,该符号在函数 vxpath_eval_expr 中被引用
2>spatialite.lib(virtualXL.obj) : error LNK2019: 无法解析的外部符号 freexl_get_cell_value,该符号在函数 vXL_create 中被引用
2>spatialite.lib(virtualXL.obj) : error LNK2019: 无法解析的外部符号 freexl_worksheet_dimensions,该符号在函数 vXL_create 中被引用
2>spatialite.lib(virtualXL.obj) : error LNK2019: 无法解析的外部符号 freexl_select_active_worksheet,该符号在函数 vXL_create 中被引用
2>spatialite.lib(virtualXL.obj) : error LNK2019: 无法解析的外部符号 freexl_get_info,该符号在函数 vXL_create 中被引用
2>spatialite.lib(virtualXL.obj) : error LNK2019: 无法解析的外部符号 freexl_close,该符号在函数 vXL_create 中被引用
2>spatialite.lib(virtualXL.obj) : error LNK2019: 无法解析的外部符号 freexl_open,该符号在函数 vXL_create 中被引用
2>spatialite.lib(gg_utf8.obj) : error LNK2019: 无法解析的外部符号 locale_charset,该符号在函数 gaiaGetLocaleCharset 中被引用
2>spatialite.lib(gg_utf8.obj) : error LNK2019: 无法解析的外部符号 __imp_libiconv_close,该符号在函数 gaiaConvertCharset 中被引用
2>spatialite.lib(gg_shape.obj) : error LNK2001: 无法解析的外部符号 __imp_libiconv_close
2>spatialite.lib(gg_utf8.obj) : error LNK2019: 无法解析的外部符号 __imp_libiconv,该符号在函数 gaiaConvertCharset 中被引用
2>spatialite.lib(gg_shape.obj) : error LNK2001: 无法解析的外部符号 __imp_libiconv
2>spatialite.lib(gg_utf8.obj) : error LNK2019: 无法解析的外部符号 __imp_libiconv_open,该符号在函数 gaiaConvertCharset 中被引用
2>spatialite.lib(gg_shape.obj) : error LNK2001: 无法解析的外部符号 __imp_libiconv_open
2>F:\BUILD-1\output\bin\RelWithDebInfo\qgis_core.dll : fatal error LNK1120: 46 个无法解析的外部命令

已经尝试在工程属性->连接器->命令行->附加选项指定
/LIBPATH:"C:\OSGeo4W64\bin" /LIBPATH:"C:\OSGeo4W64\lib"

或者
/IMPLIB:"C:\OSGeo4W64\lib\libxml2.lib"

但还是不行
...全文
421 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
小宋朝 2016-04-05
  • 打赏
  • 举报
回复
编译QGIS的时候,按照我给出的方法修改你要编译的工程文件即可

我编译2.8.4的时候也出现你说的问题,按照我给的方法就可以。
我猜测是库的原因,去掉spatialite.lib,更改为spatialite_i.lib就可以

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧