문제

Build+Debug를 누를 때이 오류가 발생했습니다.

ld: duplicate symbol .objc_class_name_BlogTableItemCell in /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o and /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
도움이 되었습니까?

해결책

코드의 다른 장소에서 동일한 BlogtableItemcell 클래스를 두 번 컴파일하는 것 같습니다. 이것은 다음과 같은 경우에 발생할 수 있습니다.

  • 동일한 클래스 구현을 두 개의 다른 파일에 넣었습니다.

  • 실제로이 클래스를 하나의 구현 만 가지고 있지만, 당신은 또한 당신의 이름이 당신의 이름과 정확히 같은 클래스를 포함하는 프레임 워크 또는 라이브러리를 연결하는 것입니다.

전체 프로젝트에서 수업에서 찾아보고 프로젝트 내에서 하나의 사본 만 사용할 수 있는지 확인하십시오.

다른 팁

#Import 문에 대한 Xcode의 자동 완성이 '.h'대신 'Duplication'클래스의 '.m "파일을 지정하도록 실수 로이 오류를 얻을 수도 있습니다.

저를 위해 '공통 블록'을 예에서 아니오로 변경합니다 (대상-> 빌드 설정-> Apple LLVM- 코드 생성)enter image description here

나는 Consts의 열악한 정의로 인해 비슷한 문제가있었습니다. 내 헤더에 Const를 정의했습니다.

int const kCropLocationTop = 1;

이것은 아마도 여러 번 수입되었습니다. 수정하려면 헤더 def를 다음과 같이 변경했습니다.

extern int const kCropLocationTop;

const의 할당을 .m 파일로 옮겼습니다.

int const kCropLocationTop = 1;

단순한 객관적인 C 개념을 무지한 사람이라면 누구나 도움이되기를 바랍니다!

iPhone : 중복 심볼 오류? 사용자 576924에 의해

나를 위해 올바르게 대답했습니다. 그러나이 Zsh 스 니펫을 불쾌한 그레민을 찾기 위해.

grep "import.*\.m" **/*.[hm]

오류가 어디에 있는지 즉시 알려줍니다.

실수로 소스 파일은 프로젝트 -> 빌드 단계 -> 컴파일 소스에 두 번 포함되었습니다. 그들 중 하나를 제거하면 문제가 해결되었습니다.

이 오류의 가장 일반적인 이유는 xyz.h 파일 대신 xyz.m 파일을 가져 오기 때문입니다. 수입에 수입이 포함되어 있는지 확인하십시오 #import "----.m"

추가하기 위해; Xcode를 사용하여 서브 클래스 관리 객체 (핵심 데이터)를 생성하면 생성 된 파일을 복제 할 수 있습니다. 나에게 수정은 생성 된 파일을 삭제하고 재생하는 것이었다.

나는 방금이 문제를 직접 만났다. 목록의 경우 여기에 또 다른 가능성이 있습니다.

프로젝트 파일의 복제 된 링크 라인.

실수로 라인을 복제했을 때 SVN 업데이트 에서이 병합 충돌이 발생했습니다.

나에게도 일어났다. 필자의 경우 핵심 데이터 중 하나만 자동으로 생성 된 클래스가 두 번 삽입되었습니다. 빌드 단계를보고 컴파일 소스를 보면서 복제를 발견했습니다. 발생 중 하나를 삭제하면 문제가 해결되었습니다.

목록에 또 다른 가능한 원인을 추가합니다 ... 구현 파일에서 실수로 여러 상수를 만들 수 있지만 구현 이외의 이름으로 같은 이름을 만들 수 있습니다.

HeaderFileOne.m

NSString * const kCoolConstant = @"cool";

HeaderFiletwo.m

NSString * const kCoolConstant = @"cool";

따라서 이러한 상수 이름 중 하나를 변경하면 컴파일 오류가 수정됩니다.

나는 또한이 문제에 직면했다. 내 솔루션은 다른 클래스의 이름과 동일한 이름을 가진 Global Variable 중 하나의 이름을 바꾸는 것입니다. 도움이 되었기를 바랍니다

이것은 누군가를 도울 수 있습니다

ViewController를 복제 한 다음 이름을 변경했기 때문에이 오류가 발생했습니다. 그래서 컴파일하면이 오류가 발생했습니다. 그 이유는 두 뷰 컨트롤러 모두에 클래스 레벨에서 정의한 동일한 이름의 플로트 패딩 = 10.0 "의"float "변수가있었습니다. 보기 컨트롤러 중 하나에서 위에서 언급 한 변수의 이름을 바꾸면 내 문제가 해결되었습니다.

현지화 가능한 XIB 파일을 사용하는 동안 나에게도 같은 일이 일어났습니다. 우연히 두 개의 구현 파일을 만들었고 제 경우에는 문제가 발생했습니다. 동일한 실수를하지 않고 구현 파일을 삭제 / 재현 한 후 오류가 수정되었습니다.

개발자 중 한 명이 "Libsoomla*"프로젝트 파일을 두 번 남겼습니다. 중복 SOOMLA 파일을 제거하고 다시 제작 한 후 수정했습니다!

도움이되기를 바랍니다.

5 월의 경우, 나는이 상징적 링크를 만들도록 지시 한 새로운 버전의 Subversion을 구축하기위한 몇 가지 지침을 따랐습니다.

ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

이제 나는 정말로 Windows Guy이므로 즉시 분명하지는 않았지만 링크를 제거하면 Xcode를 다시 시작한 후에 링크를 고정했습니다.

rm /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

휴.

(내가 얻은 실제 오류는 여기에 설명 된 오류였습니다.빌드 오류 복제 기호 Arclite.o)

.m 파일을 가져 오지 않은지 확인하십시오. 나에게 이런 일이 일어났습니다 #Import "SchoolComputerHome.m 대신"#Import "SchoolCommuterhome.m"을 추가했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top