Iphone 编译应用程序时,我遇到如下错误

Iphone 编译应用程序时,我遇到如下错误,iphone,compiler-errors,xcode4.2,Iphone,Compiler Errors,Xcode4.2,这是我得到的错误日志 Ld /Users/apple/Library/Developer/Xcode/DerivedData/SMTPExample-dkhosyetbsajvtcdyyalnckswjgd/Build/Products/Debug-iphonesimulator/SMTPExample.app/SMTPExample normal i386 cd /Users/apple/Desktop/SMTPExample setenv MACOSX_DEPLOYMENT_

这是我得到的错误日志

Ld /Users/apple/Library/Developer/Xcode/DerivedData/SMTPExample-dkhosyetbsajvtcdyyalnckswjgd/Build/Products/Debug-iphonesimulator/SMTPExample.app/SMTPExample normal i386
    cd /Users/apple/Desktop/SMTPExample
    setenv MACOSX_DEPLOYMENT_TARGET 10.6
    setenv PATH "/xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/xcode4/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -arch i386 -isysroot /xcode4/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/apple/Library/Developer/Xcode/DerivedData/SMTPExample-dkhosyetbsajvtcdyyalnckswjgd/Build/Products/Debug-iphonesimulator -F/Users/apple/Library/Developer/Xcode/DerivedData/SMTPExample-dkhosyetbsajvtcdyyalnckswjgd/Build/Products/Debug-iphonesimulator -F/Users/apple/Desktop/SMTPExample -filelist /Users/apple/Library/Developer/Xcode/DerivedData/SMTPExample-dkhosyetbsajvtcdyyalnckswjgd/Build/Intermediates/SMTPExample.build/Debug-iphonesimulator/SMTPExample.build/Objects-normal/i386/SMTPExample.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework Security -framework CFNetwork -framework UIKit -framework Foundation -framework CoreGraphics -framework DropboxSDK -o /Users/apple/Library/Developer/Xcode/DerivedData/SMTPExample-dkhosyetbsajvtcdyyalnckswjgd/Build/Products/Debug-iphonesimulator/SMTPExample.app/SMTPExample

ld: duplicate symbol _EstimateBas64EncodedDataSize in /Users/apple/Desktop/SMTPExample/DropboxSDK.framework/DropboxSDK and /Users/apple/Library/Developer/Xcode/DerivedData/SMTPExample-dkhosyetbsajvtcdyyalnckswjgd/Build/Intermediates/SMTPExample.build/Debug-iphonesimulator/SMTPExample.build/Objects-normal/i386/Base64Transcoder.o for architecture i386
collect2: ld returned 1 exit status
Command /xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1
这是一个链接器错误(输出中的“ld”表示这一点,因为输出错误是由生成的)

所发生的事情是,两个相同的声明已从两个独立的源代码文件中分别编译。其中一个源文件可能命名为
Base64Transcoder.m
Base64Transcoder.cpp
(因为导致问题的编译文件是
Base64Transcoder.o
)。所讨论的声明是
\u estimateBas64编码数据大小
。在不同的源代码文件中多次声明此符号,然后链接器抛出错误,因为两个编译的源代码文件不同。您需要查看正在编译的整个源代码并解决冲突


希望这有帮助,有意义,我总是发现链接器的问题很难理解和处理。我强烈建议阅读C/C++/Objective-C代码程序编译的链接器阶段(这是一个非常好的指南)。那么你应该能够更好地理解引擎盖下发生了什么!:)

检查每个.m文件中是否存在重复变量可能有一些变量是您在不同的.m文件中声明的,它们的名称相同\u EstimateBas64EncodedDataSize符号用于多个类…这是发生此类错误的主要原因。。。