11
ld: duplicate symbol _velocityX in \
/Users/Student/Library/Developer/Xcode/DerivedData/finalproject-ffzevekmatxvhrgisgeleoijyllr/Build/Intermediates/finalproject.build/Debug-iphonesimulator/finalproject.build/Objects-normal/i386/Level2ViewController.o \
and \
/Users/Student/Library/Developer/Xcode/DerivedData/finalproject-ffzevekmatxvhrgisgeleoijyllr/Build/Intermediates/finalproject.build/Debug-iphonesimulator/finalproject.build/Objects-normal/i386/Level1ViewController.o \
for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

更新:添加了 \ + 换行符以提高可读性

我不知道我的项目有什么问题,有人可以帮忙吗?

4

4 回答 4

23

我有同样的问题。但这是我的错。:)。你可能写了 a#import file.m而不是#import file.h. 所以编译资源会复制符号file.o。- 而已!^^ 要查看它,您删除该错误文件,构建 --> 显示错误行 --> 然后重新复制它。

于 2012-12-14T03:24:19.660 回答
4

我遇到了同样的错误,这是因为我在两个单独的 .m 文件中定义了一个同名的常量。一旦我更改了其中一个的名称,它就会编译。

例如在我的 ViewController.m 我有:

#import "ViewController.h"
const int IPHONE4 = 480;

在我的 Menu.m 中:

#import "Menu.h"
const int IPHONE4 = 480;

我将 Menu.m 更改为:

#import "Menu.h"
const int IPHONE4H = 480;
于 2015-02-27T05:28:12.067 回答
2

我在尝试将一些框架集成到我的应用程序中时遇到了同样的错误。

首先我使用的是 Sparrow——一个图形库,默认情况下我有一个 main.m 文件,在我尝试集成同样依赖于 FacebookSDK 的 Parse 之前一切都很好。在 FacebookSDK 文件夹中,有一个名为 Scrumptious 的示例应用程序,其中还有一个 main.m,这是我的问题的根源。我删除了示例应用程序目录,一切正常。

于 2013-12-16T05:09:45.357 回答
2

您可能double _velocityX在一个头文件中包含Level1ViewController.cLevel2ViewController.c,当头文件应该有时extern double _velocityX,并且恰好其中一个文件.c应该有double _velocityX. (假设_velocityXis的类型double,这似乎是合理的,并且还假设这是 C 或 C++ 而不是 Fortran 或其他东西)。

于 2012-07-30T18:58:16.213 回答