Objective c 错误:接口中实例变量的声明已弃用[-Werror,-Wobjc interface ivars]
我刚刚从github克隆了一个项目,我去构建它,一次又一次地遇到这个错误。知道问题出在哪里吗 以下是我的一些错误输出和导致错误的一些代码: 注: _indexSetFlags和_internal是本代码示例中导致错误的变量Objective c 错误:接口中实例变量的声明已弃用[-Werror,-Wobjc interface ivars],objective-c,Objective C,我刚刚从github克隆了一个项目,我去构建它,一次又一次地遇到这个错误。知道问题出在哪里吗 以下是我的一些错误输出和导致错误的一些代码: 注: _indexSetFlags和_internal是本代码示例中导致错误的变量 #import <Foundation/NSObject.h> #import <Foundation/NSRange.h> NS_ASSUME_NONNULL_BEGIN @interface NSIndexSet : NSObject <
#import <Foundation/NSObject.h>
#import <Foundation/NSRange.h>
NS_ASSUME_NONNULL_BEGIN
@interface NSIndexSet : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> {
@protected // all instance variables are private
struct {
NSUInteger _isEmpty:1;
NSUInteger _hasSingleRange:1;
NSUInteger _cacheValid:1;
NSUInteger _reservedArrayBinderController:29;
} _indexSetFlags;
union {
struct {
NSRange _range;
} _singleRange;
struct {
void * _data;
void *_reserved;
} _multipleRanges;
} _internal;
}
#导入
#进口
NS\u假设\u非空\u开始
@接口NSIndexSet:NSObject{
@受保护//所有实例变量都是私有的
结构{
nsu整数为空:1;
NSU整数_hasSingleRange:1;
NSUInteger\u cacheValid:1;
NSUInteger\u reservedArrayBinderController:29;
}_indexSetFlags;
联合{
结构{
NSRange_范围;
}_单量程;
结构{
void*_数据;
无效*(保留);
}_多音标;
}_内部;
}
错误输出:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSAutoreleasePool.h:14:11:
错误:在中声明实例变量
接口已弃用[-Werror,-Wobjc接口ivars]
无效*_保留2
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSString.h:543:9:
错误:接口中实例变量的声明无效
不推荐使用[-Werror,-Wobjc接口ivars]
整数单位;
^/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSString.h:545:9:
错误:接口中实例变量的声明无效
不推荐使用[-Werror,-Wobjc接口ivars]
int_未使用;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSNotification.h:39:11:
错误:在中声明实例变量
接口已弃用[-Werror,-Wobjc接口ivars]
无效*_impl;
^
致命错误:发出的错误太多,现在停止[-ferror limit=]20
生成错误
以下生成命令失败:CompileC
/Users/bananaman123/Desktop/eecs481/hw6/wz_build/lib/sdl/warzone2100.build/Debug/sdl backend.build/Objects normal/x86_64/cocoa_wz_menu.o lib/sdl/coa_wz_menu.mm normal x86_64 objective-c++
com.apple.compilers.llvm.clang.1_0.compiler(1个失败)
我遗漏了很多错误输出,但所有错误消息都包含“错误:接口中实例变量的声明已被弃用[-Werror,-Wobjc interface ivars]”。正如README.md在最后一行中所建议的那样,去读吧
然后一步一步地完成要求。它主要是用C++编写的,因此需要进行相应的处理。 您需要CMake 3.15+, 在这里找到它 也可以通过自制获取文本 以及通过自制的AscidActor 由于您显然使用OSX10.15+而不需要GCC,所以Xcode>11就可以了 您的错误会返回到虚假的项目设置。
<代码> nSixDestSET 是属于基础框架的类。在这段代码中通常没有什么需要修复的。很确定这是因为ObjuleC++被用来工作,这是一个简单的方法,将C++包含到XCODE项目中。如果要更改添加到项目中的方式,请阅读有关使用
.mm
文件的更多信息,因为
Readme.md中的行之间的某个地方也会被写入..“运行CMake生成Xcode项目”
这似乎不是c++错误消息非常精确。如果您完全无法相应地更改代码,请删除导致此错误的编译器开关,如图所示。您可能提前一步设置项目,需要一步一步地重新开始。我已经安装了所有的工具,但是通过查看输出,我看到了一些危险信号。首先,它说找不到gettext。确切的输出是:--查找gettext--查找gettext-未找到--查找iconv--查找iconv-未找到--查找strlcat--查找strlcat-已找到。。。为什么找不到gettext?当我键入gettext--version时,我可以清楚地看到安装了0.21版。自制就像过去的明信片。在15年的编码过程中,它永远无法保持高效。每个项目都有同样的麻烦。顺便说一句,gettext是一个文本本地化(translation keeper)工具,听起来很强大,但与apple框架相比,它是一个很小的功能。我的评论对你没有帮助。但也许你会在标签下或在SO中询问一些错误日志。。