Ios 如何在Swift中使用libxml?
我尝试使用这种新语言,用我的一些旧代码开始一个新项目, 我在旧项目中使用了Libxml2.2,因此在我将代码放入新项目后,xcode显示“libxml.h/parse.h file not found”。Ios 如何在Swift中使用libxml?,ios,objective-c,swift,Ios,Objective C,Swift,我尝试使用这种新语言,用我的一些旧代码开始一个新项目, 我在旧项目中使用了Libxml2.2,因此在我将代码放入新项目后,xcode显示“libxml.h/parse.h file not found”。 我已经导入了“libxml2.2.dylib”以便在Xcode 6中使用我的项目,我导航到我的项目的“构建设置”,并选择了我的目标。然后,我在构建设置中搜索“标题搜索路径”,并将以下行添加到调试和发布中: $(SDKROOT)/usr/include/libxml2 我发现,如果将“-lxm
我已经导入了“libxml2.2.dylib”以便在Xcode 6中使用我的项目,我导航到我的项目的“构建设置”,并选择了我的目标。然后,我在构建设置中搜索“标题搜索路径”,并将以下行添加到调试和发布中:
$(SDKROOT)/usr/include/libxml2
我发现,如果将“-lxml2”添加到其他\u LDFLAGS,则可以省去导入“libxml2.2.dylib”。您必须创建一个自定义
模块映射
文件,其中包含libxml/tree.h
的头,如下所示:
module libxml [system] {
header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h"
export *
}
然后将此文件(modulemap.modulemap)放入文件夹(例如module)中,并将其添加到项目和目标的生成设置中
现在可以使用@import libxml代码>在您的代码中。我已经使它与CommonCrypto一起工作,但是libxml应该是相同的。要记住的事情
模块模块映射
阅读
创建一个名为libxml2
的文件夹(在我的例子中,它与我的项目文件位于同一目录),然后在其中创建一个module.modulemap
文件
module libxml2 {
header "/usr/include/libxml2/libxml/tree.h"
export *
}
这里我只添加了tree.h
,但您可以根据需要添加更多
SWIFT\u包含路径
转到目标生成设置,将其添加到导入路径中
${SRCROOT}/libxml2
$(SDKROOT)/usr/include/libxml2
标题搜索路径
阅读
转到目标生成设置,将其添加到标题搜索路径中
${SRCROOT}/libxml2
$(SDKROOT)/usr/include/libxml2
有趣的相关帖子
这不起作用,因为编译器会说不能包含非模块化的include当前有libxml2的模块映射文件;也许在写这个问题/评论时它并不存在。请注意,该文件实际上建议您从Xcode 9开始将“-Xcc-I$(SDKROOT)/usr/include/libxml2”添加到Xcode项目中的其他标志中