gpt4 book ai didi

iOS: "Include of non-modular header"与 libxml

转载 作者:搜寻专家 更新时间:2023-10-30 21:58:29 25 4
gpt4 key购买 nike

我正在尝试构建自己的框架“VBL”,它使用 TouchXML这是基于 libxml.dylib

框架构建良好,但每当我尝试在任何项目中使用它时,我都会收到以下错误:

"Include of non-modular header inside framework module VBL.CXMLNode"

特别是因为在我的框架内的 header CXMLNode.h 中,我必须按如下方式包含 libxml:

#include <libxml/tree.h>

将 Build Settings 中的以下属性设置为 YES 是否安全?

allow non-modular included in framework modules

但这无论如何都不适用于 Swift,所以还有其他建议吗?

最佳答案

你可以尝试隐藏#include <libxml/tree.h>如果可以,在私有(private) header 或 .m 文件中。

您也可以尝试创建一个 module.modulemap文件中包含 libxml 根 header 以欺骗 swift 编译器:

module Libxml [system] {
header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h"
export *
}

然后将文件放在一个文件夹中,例如 -module/module.modulemap-。

一旦你这样做了,你应该在 import paths 中链接它在 swift compiler search path 内目标部分build setting , 以及目标的 header search path :

$(SRCROOT)/module

然后在你的代码中,你可以使用@import libxml;

关于iOS: "Include of non-modular header"与 libxml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29865113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com