태그 보관물: xcode5

xcode5

Xcode에서 x86_64 아키텍처에 대한 중복 기호 /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o) ld:

나는 위의 제목과 동일한 질문을 받았지만 아직 정답을 찾지 못했습니다. 오류가 발생했습니다.

    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
duplicate symbol _OBJC_METACLASS_$_MoboSDK in:
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
ld: 75 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

도움을 주시면 감사하겠습니다.

마지막  으로이 오류의 원인을에 추가 -ObjC했습니다 Other Linker Flags. 이 값을 제거한 후 프로젝트를 성공적으로 빌드 할 수 있지만 그 이유를 모르겠습니다. 누구든지 이것을 설명 할 수 있습니까?



답변

x86_64 아키텍처를위한 75 개의 중복 심볼

동일한 기능을 두 번로드했음을 의미합니다. -ObjC에서 제거한 후 문제가 사라짐에 따라 Other Linker Flags,
기능을로드하는이 두 번 즉,이 옵션의 결과를 :

기술 Q & A에서

이 플래그는 링커가 라이브러리에서 Objective-C 클래스 또는 카테고리를 정의하는 모든 오브젝트 파일을로드하게합니다. 이 옵션은 일반적으로 응용 프로그램에로드 된 추가 객체 코드로 인해 더 큰 실행 파일을 생성하지만 기존 클래스의 범주를 포함하는 효과적인 Objective-C 정적 라이브러리를 성공적으로 만들 수 있습니다.

https://developer.apple.com/library/content/qa/qa1490/_index.html


답변

나를 위해 ‘No Common Blocks’를 Yes에서 No로 변경하면 (대상-> 빌드 설정-> Apple LLVM-코드 생성에서) 문제가 해결되었습니다.


답변

어리석은 일이지만 실수 #import.m파일을 편집 하지 않았는지 확인하십시오.


답변

필자의 경우 다음과 같이 상수 문자열을 정의하기 위해 헤더 파일을 만들었습니다.

NSString *const AppDescriptionString = @"Healthy is the best way to keep fit";

나는 다음을 사용 하여이 시나리오를 해결했다 static.

static NSString *const AppDescriptionString = @"Healthy is the best way to keep fit";


답변

승인 된 답변이 문제에 관한 것으로 나타 났지만 문제를 해결하는 데 도움이되지 않았습니다.이 답변이 매우 실망스러운 문제에 도움이되기를 바랍니다.

duplicate symbol _OBJC_IVAR_$_BLoginViewController._hud in:

17 duplicate symbols for architecture x86_64

“같은 함수를 두 번로드했음을 의미합니다. 다른 링커 플래그에서 -ObjC를 제거한 후 문제가 사라 지므로이 옵션으로 인해 함수가 두 번로드됩니다.”

평신도의 관점에서 이것은 프로젝트에 정확히 동일한 이름을 가진 두 개의 파일이 있음을 의미합니다. 어쩌면 한 프로젝트를 다른 프로젝트로 결합하고 있습니까? “중복 심볼”오류 위의 오류를 살펴보고 어떤 폴더가 복제되는지 확인하십시오. 제 경우에는 BLoginViewController였습니다.

예를 들어 아래 이미지에서 두 개의 BImageViewController가 있음을 알 수 있습니다.이 문제의 원인입니다.

하나를 삭제하자마자 문제가 사라졌습니다 🙂

여기에 이미지 설명을 입력하십시오


답변

나는 같은 문제가 있습니다. 프로젝트 대상> 빌드 설정> 공통 블록 없음 경로의 Xcode 7.2에서 NO로 변경합니다.


답변

다른 클래스에서 동일한 이름을 가진 const 변수를 선언 할 때도 발생합니다.

Message.m 파일에서

const int kMessageLength = 36;

@implementation Message

@end

파일 Chat.m에서

const int kMessageLength = 20;

@implementation Chat

@end