IT TIP

Xcode, 중복 기호 _main

itqueen 2021. 1. 5. 20:47
반응형

Xcode, 중복 기호 _main


중복 기호 _main이 있습니다.

문제는 "/Users/.../i386/main-B9843B6026D6EFA4.o 및 /Users/.../i386/main-B9843B6026D6EFA4.o에 중복 된 기호 _main"이라고 표시되어 있고 XXX와 XXX가 실제로 동일하다는 것입니다. o 파일. 같은 .o ?! 같은데 중복 된 기호라고 생각하는 이유를 모르겠습니다.

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


아 .. Targets / Compiled Sources 아래에 여러 항목이 있다는 것을 알았습니다 (최신 XCode에서는 Build Phases / Compile Sources 아래에 있습니다). 나는 그들을 제거하고 문제가 해결되었습니다. 다중 항목은 아마도 Git 병합과 관련이 있습니다.


제 경우에는 .h 파일 대신 .m 파일을 가져 오는 것처럼 보였습니다. 편집으로 해결

#import "Tools.m"

으로

#import "Tools.h"

나는 또한이 문제가 있었고 다른 프로젝트에서 가져온 코드로 인해 발생했습니다. 내 프로젝트 디렉토리에서 "int main"에 대한 grep을 수행했습니다.

grep -nr "int main" .

그리고 발견

./main.m:13:int main(int argc, char *argv[])
./IMPORTED_DIR/main.m:13:int main(int argc, char *argv[])

IMPORTED_DIR에는 나를 위해 오류를 일으키는 추가 main.m이 포함되어 있습니다.

프로젝트-> 대상-> 빌드 단계-> 컴파일 소스 목록에서 해당 파일을 제거한 다음 컴파일했습니다.


두 개의 타사 프레임 워크를 사용하는 것과 동일한 문제에 직면했습니다. (AppLovin 및 Flurry) 빌드 설정의 "Other Linker Flags"에서 "all_load"를 제거하여이를 알게되었습니다.


Xcode 4.0.2에서 Xcode 4.1로 만든 프로젝트를 여는 데 동일한 문제가 발생했습니다. "Modernize Project"(Editor / Modernize Project)를 클릭하여 간단히 해결했습니다. 이 절차는 모든 중복 항목을 자동으로 제거했습니다.


여전히 문제가 있으면 "int main ("과 같이 검색하고 main.m을 제외한 해당 파일을 제거하십시오.


이 문제가 직접 발생했지만 허기의 해결책을 읽은 후 올바른 길로 인도 한 후 약간 혼란스러워졌습니다. Xcode의 현재 솔루션 : 프로젝트, 대상-> 빌드 단계를 선택하고 설정 확인을 클릭합니다.

그러면 Xcode가 자체 실수를 자동으로 수정합니다. 도구가 진행을 중지하려고 할 때 항상 좋습니다.)


제 경우에는 상수 파일 (많은 클래스에서 가져옴)에 NSString을 선언했지만 정적으로 정의하는 것을 잊었습니다 !!

NSString* PARAMS = @"paramA";:static NSString* PARAMS = @"paramA";

전체 오류 메시지를 읽으면 "Duplicate symbol PARAMS"라는 것을 알 수있었습니다. 두려워하지 말고 오류 메시지를 이해하려고 노력하십시오! 때때로 그들은 당신이 뭘 잘못했는지 정확히 말해 줄 수도 있습니다.


메소드 이름에 대해서도 이것을 얻을 수 있습니다!

내가 가지고 duplicate symbol _runOnMainQueueWithoutDeadlockingCocoaPods를 통해 DBCamera를 추가 한 후 그것은 NSObject의에서 모두 내 카테고리 (NSObject의 + Tools.h)와 GPUImage의 종속 파일 GPUImageOutput.m이 두 방법은 'runOnMainQueueWithoutDeadlocking'라고했기 때문이었다.

더 이상 또는 어디서나 실제로 사용하지 않았기 때문에 코드에서 내 메서드를 제거 할 수있을만큼 운이 좋았습니다.

NSObject에 카테고리를 추가 할 자격이있는 것 같습니다.


제 경우에는 그 안에 포함 된 라이브러리를 활용하기 위해 다른 프로젝트를 가져 왔습니다. 내 프로젝트에 두 개의 main.m 파일이 생겼습니다.

나중에 여러 번 빌드 할 때까지 오류가 표시되지 않았기 때문에 이것은 훨씬 더 혼란 스러웠습니다.

참조 URL : https://stackoverflow.com/questions/3380972/xcode-duplicate-symbol-main

반응형

'IT TIP' 카테고리의 다른 글

``을  (0) 2021.01.05
nullable 형식을 비교하는 방법은 무엇입니까?  (0) 2021.01.05
숫자 범위를 다른 범위에 매핑  (0) 2021.01.05
일시적으로 stdout / stderr 리디렉션  (0) 2021.01.05
왜 벡터  (0) 2021.01.05