programing

Xcode에서 Prefix.pch 파일은 무엇입니까?

javaba 2023. 5. 29. 21:26
반응형

Xcode에서 Prefix.pch 파일은 무엇입니까?

그래서 많은 개발자들이 다양한 편의 매크로를 추가하고 있습니다.Prefix.pch하지만 제 질문은 그것이 무엇인지입니다.Prefix.pch파일.

  • 그것을 제거하면,Prefix.pch내 파일Xcode그러면 내 애플리케이션이 실행됩니까?아니면 오류가 나타날까요?또는 빌드 중에 충돌합니까?

  • 응용프로그램을 실행하지 않고 실행하려면 어떻게 해야 합니까?Prefix.pch파일

미리 컴파일된 헤더입니다.

그것은 무엇일까요?

A Prefix.pch미리 컴파일된 헤더입니다.미리 컴파일된 헤더는 컴파일 속도를 높이기 위해 개발되었습니다.동일한 헤더 파일을 반복적으로 구문 분석하는 대신 이러한 파일은 미리 한 번 구문 분석됩니다.

엑스코드

Xcode에서 "prefix header"에 원하는 헤더 파일 가져오기를 추가하고 다음을 활성화합니다.Precompile Prefix Header그래서 미리 컴파일됩니다.그러나 접두사 헤더 뒤에 있는 아이디어는 사전 컴파일과는 다릅니다.

접두사 헤더는 모든 원본 파일의 시작 부분에 암시적으로 포함됩니다.각 소스 파일이 추가하는 것과 같습니다.

#import "Prefix.pch"

파일의 맨 위에, 다른 무엇보다도.

그것을 제거.

미리 컴파일된 헤더를 제거할 수 있습니다.이 질문은 제가 아래 링크하고 있는 스레드에서 이미 답변되었습니다.필요한 모든 정보와 유용한 설명이 포함되어 있습니다.

Xcode 프로젝트에서 Prefix.pch 파일을 제거해도 괜찮습니까?

Prefix.pch 파일이란 무엇입니까?

.pch는 미리 컴파일된 헤더입니다.

C와 C++ 프로그래밍 언어에서 헤더 파일(header file)은 C 프리프로세서에 의해 자동으로 다른 소스 파일에 텍스트가 포함될 수 있는 파일이며, 보통 소스 파일의 컴파일러 지시어를 사용하여 지정됩니다.

접두사 헤더는 컴파일되고 캐시에 저장된 다음 컴파일 중에 모든 파일에 자동으로 포함됩니다.이렇게 하면 컴파일 속도가 빨라지고 파일을 사용하는 모든 파일에 가져오기 문을 추가하지 않고 파일을 포함할 수 있습니다.이러한 파일은 필수가 아니며 변경할 때마다 컴파일 속도가 느려집니다.

예, .pch 파일 없이 프로젝트를 컴파일하고 실행할 수 있습니다.

Xcode에서 대상의 빌드 설정(Command-Option-E, 빌드 탭)으로 이동하고 Precompile Prefix Header(GCC_PRECOMFILE_PREFIX_HEADER)의 선택을 취소합니다.원하는 경우 Prefix Header 설정 값을 제거할 수도 있습니다.

참고로,

.pch 파일에 매크로를 넣지 마십시오!.pch 파일은 정의에 따라 프로젝트별 사전 컴파일된 헤더입니다.프로젝트의 컨텍스트를 벗어나서 사용해서는 안 되며 #include 및 #imports 이외에는 아무것도 포함해서는 안 됩니다.

헤더 간에 공유할 매크로 등이 있는 경우 해당 매크로를 고유한 헤더 파일(Common.h 또는 기타)에 고정하고 #는 .pch 시작 부분에 포함합니다.

접두사 헤더는 컴파일되고 캐시에 저장된 다음 컴파일 중에 모든 파일에 자동으로 포함됩니다.이렇게 하면 컴파일 속도가 빨라지고 파일을 사용하는 모든 파일에 가져오기 문을 추가하지 않고 파일을 포함할 수 있습니다.이러한 파일은 필수가 아니며 변경할 때마다 컴파일 속도가 느려집니다.

으로 반적으로..pch 지정 은 파일이지형식입니다.yourProjectName-Prefix.pch

머리글 접두사 및 미리 컴파일된 머리글(.pch)

기록:

[#include -> #import] -> 미리 컴파일된 Headers .pch -> [@import Module(ObjC);] -> [import Module(Swift)]

미리 컴파일된 머리글 - prefix.pch

새 .pch 파일을 생성하려면 다음과 같이 하십시오.

File -> New -> File... -> PCH File

PrefixHeader.pch샘플:

#ifndef PrefixHeader_pch
#define PrefixHeader_pch
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

부터 Xcode 6을 ..pch수동으로이전에는 다음과 같이 불렸습니다.<product_name>-Prefix.pch

Xcode:

Prefix Header(GCC_PREFIX_HEADER)로 길.pch모콘텐를추다니의 모든 합니다..pch모든 원본 파일에

일부 파일 1.h

//You can skip this section. It will be compiled 
//#import <UIKit/UIKit.h>
//#import <Foundation/Foundation.h>

//implicitly next line is used
#import "PrefixHeader.pch"

Precompile Prefix Header(GCC_PRECOMPILE_PREFIX_HEADER)예인 경우Prefix headersGCC_PREFIX_HEADER하는 데 한 번*됩니다.

//path to cached precompiled headers
/<some_path>/DerivedData/ExperiementsModuleSwift-dsetoksxykdmgvczgtnmaqmjwhzk/Build/Intermediates.noindex/PrecompiledHeaders/SharedPrecompiledHeaders/14385052922615550324
//e.g
/Users/alex/Library/Developer/Xcode/DerivedData/ExperiementsModuleSwift-dsetoksxykdmgvczgtnmaqmjwhzk/Build/Intermediates.noindex/PrecompiledHeaders/SharedPrecompiledHeaders/14385052922615550324

#가져오기 대 .pch

이 기능은 빌드 시간을 향상시킵니다(보다).#include/#import왜냐하면 a를 미리 컴파일하기 때문입니다.prefix headers(으). 의일내용의 일부 .prefix headers변경됨은 Compiles가 해당 파일을 다시 컴파일해야 함을 의미합니다.그렇기 때문에 안정적으로 사용해야 합니다(자주 변경할 수 없음).prefix headers여기에 있지 않으면 빌드 시간이 향상되지 않습니다.또한 당신은 그것을 지지해야 합니다.

언급URL : https://stackoverflow.com/questions/23648593/what-is-prefix-pch-file-in-xcode

반응형