当我使用beta 1构建项目时,它可以很好地工作,但是在beta 2中,它不能工作。我认为在此构建中,libxml会出现各种错误。例如:

* tree.h:81:3: Unsupported: typedef changes linkage of anonymous type, but linkage was
already computed

* tree.h:346:8: Redefinition of '_xmlElement'

我认为这是因为某种程度上libxml在我的项目中包含了两次。如果我用#include/imports语句更改了所有@import xml2,它将再次编译。包含由定义保护。

我想知道这是否是正确的解决方案,为什么需要这样做,或者这是一个错误?

重现问题:

我在libxml周围使用包装器,因此可以使用objc。当我剥离所有代码时,可以用以下文件/类重现该问题:
// DDXMLNode.h
#import <libxml/tree.h>

//@import xml2.tree;
@import Foundation;
@import ObjectiveC.runtime;

@interface DDXMLNode : NSObject<NSCopying>

@end

// DDXMLNode.m
#import "DDXMLNode.h"

@implementation DDXMLNode
@end

我在构建阶段添加了libxml2,仅添加了libxml2.tbd。

最佳答案

正如Calimari328在评论中说的那样,此问题已在xCode beta 3中修复。

关于ios - Xcode 9 Beta 2 libxml错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44893149/

10-11 20:56