iOS 정적 라이브러리 링크 및 로드
SDK, , duplicate symbol?
한동안 이해할 수 없다. 이치에 따라duplicate symbol이 나타나면 코드에 중복 정의된 부분이 있어야 하는데 왜 실제 컴퓨터가 ok를 하는지 설명할 수 없다. 설마 실제 컴퓨터가 일부 코드를 차단했단 말인가?이러한 의문과 추측을 가지고 다음과 같은 실험을 진행하다실험
실천이야말로 진리를 검증하는 유일한 표준이다
void hello() {
printf("Testlib1: hello
");
}
void hello2() {
printf("Testlib1: hello1
");
}
void hello() {
printf("Testlib2: hello
");
}
void hello2() {
printf("Testlib2: hello2
");
}
PS: 지금까지 DEMO 프로젝트 프레임워크 테스트, Demo 메인 프로젝트, 정적 라이브러리 프로젝트 2개 포함: Testlib1, Testlib2
| 번호 | CPU 아키텍처 | 링크 ID | 라이브러리 링크 순서 | 테스트 코드 | Symbol | 출력 | 참고 |: --|: --| | arm64 | 빈 | Testlib1.frameworkTestlib2.framework|hello()|T _helloT _hello1|Testlib1: hello|원시|2|arm64|공|Testlib2.frameworkTestlib1.framework|hello()|T _helloT _hello2|Testlib2: hello|라이브러리 링크 순서 조정 |3|arm64|공|Testlib1.frameworkTestlib2.framework|hello();hello1()|T _helloT _hello1|Testlib1: hello;Testlib 1: hello1 | 인쇄 hello1 | 4 |arm64 | 빈 | Testlib 1.frameworkTestlib2.framework|hello();hello2()|T _helloT _hello1T _hello2|Testlib2: hello;Testlib2: hello2 | 인쇄 hello2 | 5 |arm64 | -allload|Testlib1.frameworkTestlib2.framework|hello();hello2() | 오류 보고: duplicate symbolhello|| 링크 ID + 인쇄 hello2 |11|x8664|비어 있음|Testlib1.frameworkTestlib2.framework|hello()|T _helloT _hello1|Testlib1: hello|시뮬레이터 |12|x8664|비어 있음|Testlib2.frameworkTestlib1.framework|hello()|T _helloT _hello2|Testlib2: hello|시뮬레이터+라이브러리 링크 순서 조정 |13|x8664|비어 있음|Testlib1.frameworkTestlib2.framework|hello();hello1()|T _helloT _hello1|Testlib1: hello;Testlib1: hello1 | 시뮬레이터 + 인쇄 hello1 | 14 | x8664|비어 있음|Testlib1.frameworkTestlib2.framework|hello();hello2() | 오류 보고: duplicate symbolhello|| 시뮬레이터 + 인쇄 hello2
결론
총결산
상기 결론을 통해
SDK, , duplicate symbol?
더 잘 설명할 수 있다. 물론 상기 테스트는 XCode 8.0과 아이폰 5s 10.0.1에서 진행되었다.나는 공식적인 설명을 찾지 못했다. 만약 어떤 어린이신발이 앱 문서를 찾았다면 나에게 알려줄 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.