2012-02-06 4 views
4

Xcode 4 프로젝트에서 bison 파서 생성기를 사용하고 있습니다. 나는 ++ C를 생성하는 사용자 지정 빌드 규칙을 작성했습니다 - 소스 파일을 * .Y 문법 파일 :Xcode 4.2 - 프로젝트에 파생 된 파일을 추가하십시오.

/usr/local/bin/bison 
--defines="${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.hpp" 
--output="${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.cpp" 
--verbose "${INPUT_FILE_PATH}" 

당신이 볼 수 있듯이, 엑스 코드 장소 $DERIVED_FILES_DIR 폴더에있는 파일을 생성합니다. 이제 생성 된 헤더 파일 grammar.hpp을 오브젝트 파일과 함께 라이브러리로 내보낼 필요가 있습니다.

Xcode는 프로젝트에 포함되지 않은 내보내기 파일을 허용하지 않습니다.

첫 번째 해결 방법은 절대 경로가 $DERIVED_FILES_DIR으로 설정된 그룹을 만드는 것입니다. 사실, 빌드 설정을 변경하여 릴리스 구성을 빌드하기 전까지는 실제로 작동합니다. $DERIVED_FILES_DIR은 빌드 설정에 종속되어 있기 때문입니다. 두 번째 솔루션은 어떻게 든, 문자 그대로 변수 그룹 경로를 설정 즉

path = $DERIVED_FILES_DIR 

지금까지 내가 할 수있는 두 가지 방법을 발견했습니다 : How to reference files with environment variables?File references relative to DERIVED_FILE_DIR in Xcode을. 어느 쪽이든 나를 위해 작동하지 않습니다.

아마 누군가 프로젝트에 생성 된 파일을 추가하는 더 좋은 방법을 알고 있습니까?

답변

0

당신의 최선의 옵션은 다음과 같습니다

  1. BUILT_PRODUCTS_DIR

을 파일을 생성하여 SRCROOT에있는 파일을 생성이 두 가지 옵션이 있습니다 "에 ... 상대"그건 당신에게 허용해야 프로젝트에 파일을 추가하십시오.

0

파일을 생성하는 과정은 파생 된 파일을 다시 처리하는 Makefile을 사용하여 make 빌드 대상 인 ${SRCROOT} 디렉토리에 있습니다. 방금 생성 한 파일을 프로젝트에 추가하고 모든 실제 빌드 대상을이 make 대상에 종속시킵니다.