0

当我尝试从文件“VAMenuScreenViewController”导入文件“VARendererViewController.h”时发生此错误

duplicate symbol _gestureMinimumTranslation in:
/Users/Sam/Library/Developer/Xcode/DerivedData/Virtual_Human_Avatar-fwgdkxpnkzapxrdzkggtmbnfhjwb/Build/Intermediates/Virtual Human Avatar.build/Debug-iphonesimulator/Virtual Human Avatar.build/Objects-normal/i386/VARendererViewController.o
/Users/Sam/Library/Developer/Xcode/DerivedData/Virtual_Human_Avatar-fwgdkxpnkzapxrdzkggtmbnfhjwb/Build/Intermediates/Virtual Human Avatar.build/Debug-iphonesimulator/Virtual Human Avatar.build/Objects-normal/i386/VAMenuScreenViewController.o

ld:架构 i386 clang 的 1 个重复符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

谁能给我一些

4

2 回答 2

4

您有两个编译单元——两个源文件——定义了相同的符号。

这可能是因为您在两个单独的 .m 文件(或其他编译单元;.c、.mm 等)中定义了符号,或者因为您在头文件中定义了符号并将其导入到这两个文件中。或者,如果您将变量声明推入没有 . 的头文件中extern,那么它将导致在.m导入它的每个文件中创建该名称的符号。

假设gestureMinimumTranslation是一个变量,那么如果你真的想要一个全局变量,它应该只在一个 .m 文件中定义如下:

int gestureMinimumTranslation;

然后,在相应的标题中:

extern int gestureMinimumTranslation;

另一个 .m文件应该导入上面的头文件。

于 2013-03-25T00:08:18.170 回答
0

链接器试图连接一组具有共同符号的对象。当Compile Sources Build Phase有重复的条目或头文件时,通常会发生这种情况。尝试删除这些。

于 2013-03-25T00:09:43.203 回答