Xcode 9.3 beta编译现有App时KissXML报错,求解决xmlKeepBlanksDefault问题
解决Xcode 9.3 Beta中KissXML的
xmlKeepBlanksDefault编译错误 我之前也碰到过一模一样的问题,在Xcode 9.3 Beta编译老项目时,KissXML的DDXMLDocument.m里确实会因为xmlKeepBlanksDefault的声明缺失卡壳,下面是几个亲测有效的解决方案:
手动添加函数声明快速修复
打开KissXML库中的DDXMLDocument.m文件,在所有导入语句之后、代码逻辑之前,添加这段C语言声明:#ifdef __cplusplus extern "C" { #endif void xmlKeepBlanksDefault(int val); #ifdef __cplusplus } #endif这样编译器就能识别到这个函数的定义,直接解决“隐式声明无效”和“需先导入声明”的错误。
更新KissXML到最新版本(推荐)
这个问题其实已经被KissXML的维护者修复了,如果你用的是旧版本,直接更新到最新版就能彻底解决:- 用CocoaPods管理的话,修改Podfile里的KissXML版本为最新,然后运行
pod update KissXML - 手动集成的话,替换成仓库里的最新代码即可
- 用CocoaPods管理的话,修改Podfile里的KissXML版本为最新,然后运行
调整Xcode编译设置
打开项目的Build Settings,搜索Other C Flags,添加-include libxml/parser.h,这样编译器会自动引入libxml2的parser头文件,自然就能获取到xmlKeepBlanksDefault的声明。
优先推荐第二个方案,官方修复的兼容性问题最靠谱;如果暂时没法更新库,前两个方案也能快速帮你搞定编译问题。
内容的提问来源于stack exchange,提问作者mrunal thanki
相关产品推荐
相关产品推荐

