Xcode의 Prefix.pch 파일은 무엇입니까?
많은 개발자들이 다양한 편의 매크로를 Prefix.pch
. 하지만 내 질문은 그 Prefix.pch
파일 이 무엇인지입니다 .
Prefix.pch
내에서 해당 파일을 제거Xcode
하면 내 응용 프로그램이 실행됩니까? 아니면 오류가 표시됩니까? 아니면 빌드 중에 충돌이 발생합니까?Prefix.pch
파일 없이 애플리케이션을 실행하려면 어떻게해야합니까?
미리 컴파일 된 헤더.
뭔데?
A Prefix.pch
는 미리 컴파일 된 헤더입니다. 미리 컴파일 된 헤더는 컴파일 속도를 높이기 위해 고안 되었습니다 . 동일한 헤더 파일을 반복해서 구문 분석하는 대신 이러한 파일은 미리 한 번 구문 분석됩니다.
Xcode
Xcode에서는 "접두사 헤더"에 원하는 헤더 파일 가져 오기를 추가하고 활성화 Precompile Prefix Header
하여 미리 컴파일됩니다. 그러나 접두사 헤더의 개념은 사전 컴파일과 다릅니다.
접두사 헤더는 모든 소스 파일의 시작 부분에 암시 적으로 포함됩니다. 각 소스 파일이 추가하는 것과 같습니다.
#import "Prefix.pch"
파일 상단에 있습니다.
그것을 제거합니다.
미리 컴파일 된 헤더를 제거 할 수 있습니다. 이 질문은 아래 링크하는 스레드에서 이미 답변되었습니다. 여기에는 필요한 모든 정보와 유용한 설명이 포함되어 있습니다.
Xcode 프로젝트에서 Prefix.pch 파일을 제거해도됩니까?
Prefix.pch 파일이란 무엇입니까?
.pch는 미리 컴파일 된 헤더입니다.
C 및 C ++ 프로그래밍 언어에서 헤더 파일은 일반적으로 소스 파일에서 컴파일러 지시문을 사용하여 지정된 C 전처리기에 의해 다른 소스 파일에 텍스트가 자동으로 포함될 수있는 파일입니다.
접두사 헤더는 컴파일되어 캐시에 저장되며 컴파일 중에 모든 파일에 자동으로 포함됩니다. 이렇게하면 컴파일 속도가 빨라지고 파일을 사용하는 모든 파일에 import 문을 추가하지 않고도 파일을 포함 할 수 있습니다. 필요하지 않으며 변경할 때마다 실제로 컴파일 속도가 느립니다.
예, .pch 파일없이 프로젝트를 컴파일하고 실행할 수 있습니다.
Xcode에서 대상의 빌드 설정 (Command-Option-E, 빌드 탭)으로 이동하여 Prefix Header (GCC_PRECOMPILE_PREFIX_HEADER)를 선택 취소합니다. 원하는 경우 접두사 헤더 설정 값을 제거 할 수도 있습니다.
또한,
.pch 파일에 매크로를 넣지 마십시오! .pch 파일은 정의에 따라 프로젝트 별 미리 컴파일 된 헤더입니다. 프로젝트의 맥락을 넘어서 사용해서는 안되며, #includes 및 #imports 외에는 아무것도 포함하지 않아야합니다.
일부 매크로가 있고 헤더간에 공유하고 싶은 경우에는 자체 헤더 파일 (Common.h 또는 기타)에 붙여넣고 .pch 시작 부분에 #include
접두사 헤더는 컴파일되어 캐시에 저장되며 컴파일 중에 모든 파일에 자동으로 포함됩니다. 이렇게하면 컴파일 속도가 빨라지고 파일을 사용하는 모든 파일에 import 문을 추가하지 않고도 파일을 포함 할 수 있습니다. 필요하지 않으며 변경할 때마다 실제로 컴파일 속도가 느립니다.
일반적으로 .pch
파일 이름 지정 형식은yourProjectName-Prefix.pch
미리 컴파일 된 헤더-prefix.pch
미리 컴파일 된 헤더는 느린 빌드 시간 문제에 대한 부분적인 해결책 입니다. 모든 또는 거의 모든 소스 파일에 공통 헤더를 포함해야 할 때 프로젝트를 컴파일하는 데 걸리는 시간이 단축됩니다. 예를 들어 iOS 프로젝트는 모든 소스 파일은 아니지만 대부분의 파일에 포함될 가능성이 있습니다. 이것은 UIKit.h
낭비적이고 느린 프로젝트를 빌드 할 때 헤더를 여러 번 파싱하고 컴파일하는 것을 의미 합니다. 이름에서 알 수 있듯이 미리 컴파일 된 헤더 파일은 공통 헤더를 별도의 파일로 수집합니다. 이 파일을 한 번만 사전 컴파일 한 다음 프로젝트의 모든 소스 파일에 자동으로 포함하면 많은 프로젝트의 빌드 프로세스 속도가 크게 빨라집니다.
다음은 Prefix.pch
UIKit 및 Foundation 헤더를 가져오고 최소 iOS 5를 확인하는 이전 프로젝트 의 일반적인 파일입니다.
#import <Availability.h>
#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
The ability to have something globally included by placing it in the .pch
file is a useful but easily abused facility. Maintaining and optimising the prefix header file also puts a lot of the work on the developer that the tools should be handling for us.
Now that modules
[About] are available there is no need to continue to list system frameworks in a precompiled prefix header
. If you need to add a prefix header to an Xcode project you can still do that by manually modifying Build Settings
Precompile Prefix Header
flag to YES- specifying the path in
Prefix Header
:
The source is here
참고URL : https://stackoverflow.com/questions/23648593/what-is-prefix-pch-file-in-xcode
'IT story' 카테고리의 다른 글
git은 xcodeproject / project.pbxproj 파일을 무시해야합니까? (0) | 2020.09.03 |
---|---|
C, Clojure, Python, Ruby, Scala 등의 벤치 마크 해석 (0) | 2020.09.03 |
CDN의 여러 파일 대 로컬 파일 하나 (0) | 2020.09.03 |
war / WEB-INF 폴더의 리소스에 대한 파일 경로? (0) | 2020.09.03 |
MySQL-모든 필드를 색인화하지 않는 이유는 무엇입니까? (0) | 2020.09.03 |