linux c 重置error,错误:在Linux上的Objective-C中进行编译时,重...

我正在尝试在Ubuntu 12 Linux上编译Objective-C代码.

main.m看起来像这样:

#import

#import "CEFoo/CEFoo.h"

int main (int argc, const char * argv[])

{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSLog (@"hello world");

[pool drain];

return 0;

}

在CEFoo.h中,我具有以下定义:

struct StructName{ // line 86

BOOL first;

...

...

};

@interface StructName :NSObject // line 92

BOOL first; // line 93

...

...

@end // 96

当我去编译

gcc main.m `gnustep-config --objc-flags` -lgnustep-base -o main.bin

我收到此消息:

Foo/CEFoo.h:93:1: error: redefinition of ‘struct StructName’

Foo/CEFoo.h:86:8: note: originally defined here

我已经读到这可能是由于两次重新定义结构,或者是使用include而不是import时递归导入引起的.

grep -r "struct StructName" *

仅显示一次定义.

我还搜索了项目中的每个include语句,没有发现include vs import的明显用途,或者没有发现CEFoo.h的双重include / imports(该文件包含多次被定义/导入的结构) .

我该如何进一步找出原因呢?我假设我将其导入了两次-如果是的话,是否可以通过首次定义的详细日志来查看它?

还有其他想法可以解决此问题吗?

TIA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值