[iphone] -all_load 링커 플래그는 무엇을합니까?

Objective-C 코드를 컴파일 할 때 -all_load 플래그가 수행하는 작업을 어디에서도 찾을 수 없습니다.

바이너리를 Apple에 업로드하는 데 몇 가지 문제가 있습니다. 그들은이 플래그를 사용하지 않았기 때문이라고 말하지만 코드 없이도 컴파일됩니다.

누군가 나를 도울 수 있습니까?

감사



답변

이 기술 노트 https://developer.apple.com/library/content/qa/qa1490/_index.html 과 관련이있을 수 있습니다.

중요 : 64 비트 및 iPhone OS 응용 프로그램의 경우 -ObjC가 범주 만 포함하고 클래스가없는 정적 라이브러리에서 개체 파일을로드하지 못하도록하는 링커 버그가 있습니다. 해결 방법은 -all_load 또는 -force_load 플래그를 사용하는 것입니다. -all_load는 링커가 Objective-C 코드가없는 아카이브를 포함하여 모든 아카이브에서 모든 오브젝트 파일을로드하도록합니다. -force_load는 Xcode 3.2 이상에서 사용할 수 있습니다. 아카이브로드를보다 세밀하게 제어 할 수 있습니다. 각 -force_load 옵션 뒤에 아카이브 경로가 와야하며 해당 아카이브의 모든 개체 파일이로드됩니다.


답변