2008-10-28 4 views
3

Xcode에서 프로젝트 설정에서 내 전 처리기 매크로를 편집 할 수 있습니다. 환경 변수를 참조하는 매크로를 만들고 싶습니다. 기본적으로, 나는 내 코드에서 $ SRC_ROOT를 참조 할 수 있기를 원한다. 현재 내 매크로에있는 내용은 다음과 같습니다.Xcode 전처리 기 매크로

SRC_ROOT=${SRC_ROOT} 

그러나 작동하지 않습니다.

답변

20

Xcode 빌드 설정에서 실제로 환경 변수 값을 언급하지 않습니다. 대신 빌드 설정 값을 참조하는 것입니다. 그 문법은 위에서 사용 된 쉘 스타일 ${SETTING_NAME}보다는 Makefile 스타일 $(SETTING_NAME)입니다.

그래서 당신이 원하는 무엇을 당신의 처리기 매크로에

SRC_ROOT="$(SRCROOT)" 

빌드 설정을 추가합니다. 추가 보너스로

, 당신이 당신의 매크로 대신 당신이 미리 컴파일 된 헤더 대신에 사용되지 처리기 매크로를 사용한다처리기 매크로, 미리 컴파일 된 접두사 파일의 내용에 영향을 미치지 않습니다 것을 알고있는 경우.

이렇게하면 프로젝트의 다른 대상, 또는 다른 프로젝트간에 미리 컴파일 된 접두사 헤더 (pch 파일로 정의 됨) 공유를 향상시킬 수 있습니다. Technical Note 2190: Speeding up your Xcode Builds에 대한 자세한 내용은 다음과 같습니다. 동일한 접두사 파일 이름과 내용을 사용하고 여러 프로젝트에서 동일한 빌드 설정을 사용하여 빌드하면 Xcode에서 기존 파일을 언제 다시 사용할 수 있는지 인식하므로 빌드 성능이 크게 향상 될 수 있습니다 프리 컴파일 된 접두사 파일.

+0

수수께끼 나이 생각 : 내 아이폰 응용 프로그램의 프로젝트를 편집하는 경우 설정을 (대상으로하지), 그리고 "전 처리기 매크로가"... 나는 "GCC 4.2 - 전처리"을 참조하십시오 각 구성을 검색 섹션 "전 처리기 매크로"등을. 애드혹, 출시 및 배포 CONFIGS ...하지만 디버그 및 분석 CONFIGS에 대해 아무것도 알 - 후자의 두 세 개의 사용자 정의 설정이있다하더라도 : GCC_C_LANGUAGE_STANDARD (C99)를 GCC_WARN_ABOUT_RETURN_TYPE (YES) 및 GCC_WARN_UNUSED_VARIABLE (YES). –

+0

스키마 전체의 빌드 전 작업에서 환경 변수를 설정하면 서브 쉘에 정의되어 있으므로 도움이되지 않으므로 빌드 프로세스에서 고려되지 않습니다. – DrMickeyLauer

관련 문제