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

私は同じ問題を抱えていました。しかし、それは私のせいでした。:)。#import file.mの代わりにa と書いたかもしれません#import file.h。そのため、Compiles Resource はシンボル file.o を複製します。- それでおしまい!^^ それを確認するには、そのエラー ファイルを削除し、ビルド --> エラー行を表示 --> 再度コピーします。

于 2012-12-14T03:24:19.660 に答える
4

これと同じエラーが発生しました。これは、2 つの別々の .m ファイルで同じ名前の定数を定義したためです。そのうちの1つで名前を変更すると、コンパイルされました。

たとえば、私の 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

おそらく、ヘッダーにとのdouble _velocityX両方に含まれるヘッダー ファイルがあり、ヘッダーに があり、ファイルの1 つに. ( の型がisであると仮定すると、これは妥当と思われます。また、これは Fortran などではなく、C または C++ であると仮定します)。Level1ViewController.cLevel2ViewController.cextern double _velocityX.cdouble _velocityX_velocityXdouble

于 2012-07-30T18:58:16.213 に答える