IT박스

Xcode 빌드 설정에서 "아키텍처"와 "유효한 아키텍처"의 차이점은 무엇입니까?

itboxs 2020. 8. 2. 17:52
반응형

Xcode 빌드 설정에서 "아키텍처"와 "유효한 아키텍처"의 차이점은 무엇입니까?


그것들의 의미는 무엇이며 다른 값으로 설정할 수 있습니까?


아키텍처는 구축하고자하는 아키텍처이고, 유효한 아키텍처는 코드베이스로 구축 할 수있는 아키텍처입니다.

따라서 armv7 용 바이너리 만 빌드하려고하지만 armv7 및 armv6에 대해 동일한 소스 코드가 올바르게 컴파일됩니다. 그래서 VALID_ARCHS = armv6 armv7 armv7s,하지만 당신은 설정 ARCHS = armv7s즉 당신이 실제로 모든 때문에 원하는 코드로 빌드.

또는 Apple-ese에서 :

ARCHS (아키텍처)

공백으로 구분 된 식별자 목록. 바이너리가 대상으로하는 아키텍처 (ABI, 프로세서 모델)를 지정합니다. 이 빌드 설정이 둘 이상의 아키텍처를 지정하면 생성 된 바이너리에 지정된 각 아키텍처에 대한 객체 코드가 포함될 수 있습니다.

과:

VALID_ARCHS (유효한 아키텍처)

공백으로 구분 된 식별자 목록. 바이너리를 빌드 할 수있는 아키텍처를 지정합니다. 빌드 중에이 목록은 ARCHS 빌드 설정 값과 교차합니다. 결과 목록은 바이너리가 실행될 수있는 아키텍처를 지정합니다. 결과 아키텍처 목록이 비어 있으면 대상이 바이너리를 생성하지 않습니다.

출처 : Xcode 빌드 설정 참조

실제로, 당신은 VALID_ARCHS홀로 남겨두고 그것을 바꾸는 것에 대해 걱정하지 않고, ARCHS당신이 만들고 싶은 아키텍처를 설정하기 위해 바이올린 을 사용합니다. 일반적으로 디버그 빌드는 just로 설정 NATIVE_ARCH합니다. 테스트 / 실행할 머신의 디버그 버전 만 빌드하고 지원하려는 모든 아키텍처에 대한 릴리스 빌드입니다.


Apple 문서에서 바이너리 Xcode가 빌드 할 목록이 Valid Architectures와 교차 한다는 것을 알고 Architectures있습니다.

제레미의 대답이 옳다고 생각하지 않습니다.

따라서 armv7 용 바이너리 만 빌드하려고하지만
armv7 및 armv6에 대해 동일한 소스 코드가 올바르게 컴파일됩니다. 그래서 VALID_ARCHS = armv6 armv7 armv7s그 코드에 실제로 구축하려는 모든 때문에,하지만 당신은 아치 = armv7s를 설정합니다.

설정 VALID_ARCHS = armv6 armv7 armv7s하고 설정 ARCHS = armv7s하면 바이너리 Xcode의 결과가 armv7s이며 armv6 / armv7과 호환되지 않습니다.

그리고 armv6 / armv7 / armv7s와 호환하려면 설정 VALID_ARCHS = armv6 armv7 armv7s하고 ARCHS = armv6.이 방법으로 바이너리 Xcode의 결과는 armv6이며 arm 프로세서가 이전 버전과 호환되므로 armv6 / armv7 / armv7 모두에서 잘 실행될 수 있습니다 .

참고 URL : https://stackoverflow.com/questions/12701188/whats-the-difference-between-architectures-and-valid-architectures-in-xcode

반응형