我尝试使用这种新语言用我的一些旧代码启动一个新项目, 我在我的旧项目中使用了Libxml2.2,因此在我将代码放入新项目后,xcode显示“找不到libxml.h / parse.h文件”。 我已经导入了“libxml2.2.dylib”
答案 0 :(得分:9)
我已经使它与CommonCrypto https://github.com/onmyway133/CommonCrypto.swift一起工作,但libxml应该是相同的。要记住的事情
module.modulemap
阅读http://clang.llvm.org/docs/Modules.html#module-map-language
创建一个名为libxml2
的文件夹(在我的例子中,它与我的项目文件位于同一目录下),然后在
module.modulemap
文件
module libxml2 {
header "/usr/include/libxml2/libxml/tree.h"
export *
}
此处我只添加了tree.h
,但您可以根据需要添加更多内容
<强> SWIFT_INCLUDE_PATHS 强>
转到目标构建设置,将其添加到Import Paths
${SRCROOT}/libxml2
<强> HEADER_SEARCH_PATHS 强>
阅读Why am I getting this "libxml/tree.h file not found" error?
转到目标构建设置,将其添加到Header Search Paths
$(SDKROOT)/usr/include/libxml2
有趣的相关帖子
答案 1 :(得分:6)
为了在Xcode 6中使用我的项目,我导航到我的项目的“Build Settings”,并选择了我的目标。然后我在Build Settings中搜索了“Header Search Paths”,并在调试和发布中添加了以下行:
$(SDKROOT)/usr/include/libxml2
答案 2 :(得分:2)
我发现你可以省去导入“libxml2.2.dylib&#39;如果你添加&#39; -lxml2&#39;到OTHER_LDFLAGS。
答案 3 :(得分:2)
您必须创建一个包含module map
标题的自定义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 *
}
然后将此文件(module.modulemap)放在文件夹-module中,并将其添加到项目和目标build settings
。
您现在可以在代码中使用@import libxml;
。