1

我添加了 Unrar4iOS 框架并出现以下链接器错误。如何解决这个问题?

duplicate symbol __Z12CallbackProcjlll in:
    /Users/dmitryvlasenko/Library/Developer/Xcode/DerivedData/UnrealReader-cpvucqqjfnkeppcasgjdrwasaryu/Build/Intermediates/UnrealReader.build/Debug-iphonesimulator/UnrealReader.build/Objects-normal/i386/Unrar4iOS.o
    /Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(Unrar4iOS.o)
duplicate symbol _OBJC_IVAR_$_Unrar4iOS.header in:
    /Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(Unrar4iOS.o)
duplicate symbol _OBJC_IVAR_$_Unrar4iOS._rarFile in:
    /Users/dmitryvlasenko/Library/Developer/Xcode/DerivedData/UnrealReader-cpvucqqjfnkeppcasgjdrwasaryu/Build/Intermediates/UnrealReader.build/Debug-iphonesimulator/UnrealReader.build/Objects-normal/i386/Unrar4iOS.o
    /Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(Unrar4iOS.o)
duplicate symbol _OBJC_IVAR_$_Unrar4iOS.filename in:
  /Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(RARExtractException.o)
duplicate symbol _OBJC_EHTYPE_$_RARExtractException in:
    /Users/dmitryvlasenko/Library/Developer/Xcode/DerivedData/UnrealReader-cpvucqqjfnkeppcasgjdrwasaryu/Build/Intermediates/UnrealReader.build/Debug-iphonesimulator/UnrealReader.build/Objects-normal/i386/RARExtractException.o
    /Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(RARExtractException.o)
ld: 12 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

4 回答 4

0

该错误向您表明 Unrar4iOS 既定义在 Unrar4iOS.a 中,也定义为项目中的单个文件。所以去:

TargetSettings->Build Phases->Link Binary with Libraries 并删除 Unrar4iOS。

于 2014-10-20T14:49:14.523 回答
0

Unrar 库是用 C++ 编写的。如果您的项目中没有任何 .mm 文件,则 Xcode 不会链接到 C++ 标准库,并且对 C++ 的所有引用都无法链接。

于 2014-11-19T22:01:59.637 回答
0

似乎您已经两次添加了同一个库,这就是为什么它说“重复符号 __Z12CallbackProcjlll”

于 2014-10-20T14:57:30.970 回答
0

这是一个编译好的测试井框架:Unrar4iOS.framework

于 2017-03-25T07:50:11.297 回答