Ld /Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Products/Debug-iphonesimulator/QuizUsingDB.app/QuizUsingDB normal i386
cd "/Users/ankit/Desktop/iOS Examples/QuizUsingDB"
export IPHONEOS_DEPLOYMENT_TARGET=6.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Products/Debug-iphonesimulator -F/Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Products/Debug-iphonesimulator -filelist /Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Intermediates/QuizUsingDB.build/Debug-iphonesimulator/QuizUsingDB.build/Objects-normal/i386/QuizUsingDB.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.1 -lsqlite3 -framework UIKit -framework CoreGraphics -framework Foundation -Xlinker -dependency_info -Xlinker /Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Intermediates/QuizUsingDB.build/Debug-iphonesimulator/QuizUsingDB.build/Objects-normal/i386/QuizUsingDB_dependency_info.dat -o /Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Products/Debug-iphonesimulator/QuizUsingDB.app/QuizUsingDB
duplicate symbol _flag in:
/Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Intermediates/QuizUsingDB.build/Debug-iphonesimulator/QuizUsingDB.build/Objects-normal/i386/MediumViewController.o
/Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Intermediates/QuizUsingDB.build/Debug-iphonesimulator/QuizUsingDB.build/Objects-normal/i386/SimpleQuestionViewController.o
duplicate symbol _flag in:
/Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Intermediates/QuizUsingDB.build/Debug-iphonesimulator/QuizUsingDB.build/Objects-normal/i386/MediumViewController.o
/Users/ankit/Library/Developer/Xcode/DerivedData/QuizUsingDB-bijvpcomctoytfblslktqvqbwaom/Build/Intermediates/QuizUsingDB.build/Debug-iphonesimulator/QuizUsingDB.build/Objects-normal/i386/HardViewController.o
ld: 2 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
原因是您在多个文件:MediumViewController
, SimpleQuestionViewController
和HardViewController
中有相同名称的常量:flag
。
请在其中一个重命名
该错误意味着在您的项目中有多个具有相同名称的静态变量。这可能有几种不同的方式。
问题案例1:
.h文件1:
#import ...
int flag;
@interface
@end
.h file 2:
#import ...
int flag;
@interface
@end
如果这两个。h文件包含在你的项目中,你有两个名为flag的全局变量。
问题2:
你有一个。h文件,在多个。m文件中导入了一个全局变量。
. h
#import ...
int flag;
@interface
@end
。M文件1:
#import "your.h"
。M文件2:
#import "your.h"
当您导入定义它的.h文件时,这两个.m文件都创建了一个名为flag
的全局变量。
避免问题情形1的一种方法是重命名全局变量。避免问题2的一种方法是在.h文件中使用extern
修饰符,然后在.m文件中定义#import
作为.h文件的变量。这可能是其他几个问题,但这是我能马上想到的两个。
. h文件:
#import ...
extern int flag;
@interface
@end
。m文件
#import "your.h"
int flag
@implementation
@end
确保只在导入.h文件的.m文件中定义标志变量,否则会再次出现重复的变量错误。