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 _runOnMainQueueWithoutDeadlocking
CocoaPods를 통해 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 |