programing

Xcode에 시스템 헤더 검색 경로 추가

firstcheck 2021. 1. 18. 08:09
반응형

Xcode에 시스템 헤더 검색 경로 추가


(참고 목적으로이 질문을 게시하면 즉시 답변하겠습니다)

Xcode에 헤더 검색 경로를 추가하는 방법은 무엇입니까? 특히 다음 구문을 포함 할 때 :

include <myheader.h>
  1. 시스템 헤더와 같은 모든 프로젝트에 전역 경로 추가.
  2. 특정 프로젝트에만 경로를 추가합니다.

두 가지 옵션이 있습니다.

  1. Xcode의 환경 설정에서 Preferences-> Locations-> "Source Trees"를보십시오. 여기에 추가 된 경로는 시스템 수준 경로가되며 모든 프로젝트에 포함될 수 있습니다.

  2. 설정 HEADER_SEARCH_PATHS프로젝트 정보에 빌드 설정에서 매개 변수입니다. "${SRCROOT}"재귀없이 여기에 추가 했습니다. 이 설정은 대부분의 프로젝트에서 잘 작동합니다.

두 번째 옵션 정보 :

Xcode는 GCC 호환 명령 세트가있는 Clang을 사용합니다. GCC에는-Idir 시스템 헤더 검색 경로를 추가 하는 옵션 이 있습니다. 이 옵션은 HEADER_SEARCH_PATHSXcode 프로젝트 빌드 설정을 통해 액세스 할 수 있습니다 .

그러나이 설정에 추가 된 경로 문자열에는 옵션이있는 그대로 셸 명령에 전달되므로 공백 문자를 포함해서는 안됩니다.

그러나 일부 OS X 사용자 (나와 같은)는 이스케이프해야하는 공백을 포함하여 경로에 프로젝트를 배치 할 수 있습니다 . /Users/my/work/a\ project\ with\ space수동으로 입력하는 것처럼 이스케이프 할 수 있습니다 . 또한 따옴표로 이스케이프하여 "${SRCROOT}".

또는 .현재 디렉토리를 나타내는 데 사용하십시오 . Webkit의 소스 코드에서이 트릭을 보았지만 빌드 할 때 현재 디렉토리가 프로젝트 디렉토리로 설정 될지 확실하지 않습니다.

${SRCROOT}엑스 코드에 의해 사전 정의 된 값이다. 이것은 소스 디렉토리를 의미합니다. 참조 문서 에서 더 많은 값을 찾을 수 있습니다 .

추신. 실제로 중괄호를 사용할 필요가 없습니다 {}. 나는 $SRCROOT. 차이점을 알고 있으면 알려주십시오.


프로젝트 레벨 설정과 관련된 이오 닐의 답변을 따릅니다. 대상을 선택하고 빌드 설정 탭을 선택하면 헤더 검색 경로에 대한 검색 경로 아래에 목록이 없을 수 있습니다. 이 경우 검색 창의 "Basic"에서 "All"로 변경할 수 있으며 Header Search Paths는 Search Paths 섹션에 표시됩니다.


완전성을 위해 따옴표를 사용합니다.

"/Users/my/work/a project with space"/**

재귀 적이 지 않은 경우 /**


이 질문에 답이 있지만 같은 문제가있을 때 다르게 해결했습니다. 옵션으로 폴더를 복사 할 때이 문제가 발생했습니다 Create Folder references. 그런 다음 build_path에 폴더를 추가하는 위의 솔루션이 작동했습니다. 그러나 Create groups for any added folder옵션을 사용하여 폴더를 추가 하면 헤더가 자동으로 선택되었습니다.

참조 URL : https://stackoverflow.com/questions/3428216/adding-system-header-search-path-to-xcode

반응형