사용자 지정 빌드 단계 지정
사용자 지정 빌드 단계에서는 입력 파일에서 출력 파일을 빌드하는 데 필요한 정보를 빌드 시스템에 제공합니다. 사용자 지정 빌드 단계는 입력 파일에 연결되며, 실행할 명령, 각 명령으로 생성되는 출력 파일의 목록 및 명령에 대한 설명(선택적)이 들어 있습니다.
사용자 지정 빌드 단계에 대한 일반적인 내용은 사용자 지정 빌드 단계 및 빌드 이벤트 이해를 참조하십시오.
사용자 지정 빌드 단계를 지정하려면
-
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual C++ 프로젝트 속성 설정을 참조하십시오.
-
구성 상자에서 사용자 지정 빌드 단계를 지정할 구성을 선택합니다.
-
솔루션 탐색기에서 사용자 지정 빌드 단계에 사용할 입력 파일을 선택합니다.
사용자 지정 빌드 단계 폴더가 표시되지 않으면 선택한 파일이 기본 단계와 연관되어 있는 것입니다. 예를 들어, .c 및 .cpp 파일에는 컴파일러를 호출하는 기본 단계가 있습니다. 기본 설정을 무시하려면 구성 설정 폴더에 있는 Tool 속성을 수정합니다.
-
사용자 지정 빌드 단계와 연관된 속성을 지정합니다.
-
추가 종속성에서, 정의하고 있는 사용자 지정 빌드 단계에 대한 파일 외의 다른 파일을 지정합니다. 사용자 지정 빌드 단계와 연관된 파일은 암시적으로 해당 단계의 입력 파일이 됩니다. 추가 입력 파일이 사용자 지정 빌드 단계에 꼭 필요한 것은 아닙니다. 추가 입력 파일이 둘 이상 있으면 세미콜론으로 구분합니다.
추가 종속성 파일의 날짜가 입력 파일의 날짜보다 늦으면 사용자 지정 빌드 규칙이 실행됩니다. 모든 추가 종속성 파일이 입력 파일보다 오래되었고 입력 파일이 출력 파일보다 오래되었으면 사용자 지정 빌드 단계는 실행되지 않습니다.
예를 들어, MyInput.x를 입력 파일로 사용하여 MyInput.cpp를 생성하는 사용자 지정 빌드 단계가 있으며 MyInput.x에는 MyHeader.h라는 헤더 파일이 포함되어 있는 경우, MyHeader.h를 MyInput.x에 대한 입력 종속성으로 지정할 수 있습니다. 이 경우 빌드 시스템에서는 MyInput.cpp의 날짜가 MyInput.x나 MyHeader.h의 날짜보다 빠르면 MyInput.cpp를 빌드하게 됩니다.
입력 종속성을 사용하면 사용자 지정 빌드 단계를 원하는 순서대로 실행할 수도 있습니다. 앞의 예제에서 MyHeader.h가 사용자 지정 빌드 단계의 실제 출력 파일이라고 가정할 경우, MyHeader.h는 MyInput.x에 종속되어 있으므로 빌드 시스템에서는 MyHeader.h를 먼저 빌드한 다음 MyInput.x에 대해 사용자 지정 빌드 단계를 실행합니다.
-
명령줄에서 사용자 지정 빌드 규칙의 구문을 지정합니다. 이 구문에는 명령줄이나 .bat 파일에서 사용할 수 있는 모든 명령을 사용할 수 있습니다. 파일을 여러 개 선택하는 경우 빌드 명령 및 속성 매크로를 사용하여 파일 위치를 지정하거나 입력 파일의 실제 이름을 가져올 수 있습니다. 배치 파일의 이름 앞에는 call이 있어야 다음의 모든 명령이 실행됩니다.
-
설명에 사용자 지정 빌드 단계에 대한 설명을 입력합니다. 입력한 내용은 빌드 시스템에서 이 단계를 처리할 때 출력 창에 표시됩니다.
-
출력에 출력 파일의 이름을 지정합니다. 이 속성은 필수 항목이므로 이 속성에 값이 없으면 사용자 지정 빌드 단계가 실행되지 않습니다. 사용자 지정 빌드 단계에 둘 이상의 출력 파일이 있으면 각 파일 이름을 세미콜론으로 구분합니다.
출력 파일의 이름은 명령줄 속성에 지정된 이름이어야 합니다. 프로젝트 빌드 시스템에서는 이 파일을 찾아 날짜를 검사합니다. 이 파일의 날짜가 입력 파일의 날짜보다 늦거나 이 파일이 없으면 사용자 지정 빌드 단계가 실행됩니다. 모든 추가 종속성 파일이 입력 파일보다 오래되었고 입력 파일이 출력 파일보다 오래되었으면 사용자 지정 빌드 단계는 실행되지 않습니다.
-
사용자 지정 빌드 단계에서 생성된 출력 파일이 빌드 시스템에서 작동되도록 하려면 출력 파일을 프로젝트에 수동으로 추가해야 합니다. 사용자 지정 빌드 단계에서는 빌드하는 동안 이 파일을 업데이트합니다.
예제
parser.l이라는 파일을 프로젝트에 포함시키려는 경우 어휘 분석기를 통해 parser.l을 처리하여 동일한 기본 이름(parser.c)의 .c 파일을 생성할 수 있습니다.
먼저, parser.l과 parser.c를 프로젝트에 추가합니다. 이 파일이 없으면 이 파일에 대한 참조를 추가합니다. parser.l에 사용할 사용자 지정 빌드 단계를 만들고 명령 속성에 다음을 입력합니다.
lexer $(InputPath) .\$(InputName).c
이 명령은 parser.l에 대해 어휘 분석기를 실행하고 parser.c를 프로젝트 디렉터리에 출력합니다.
출력 속성에 다음을 입력합니다.
.\$(InputName).c
프로젝트를 빌드할 때 빌드 시스템에서는 parser.l과 parser.c의 타임스탬프를 비교한 후, parser.l의 타임스탬프가 보다 최근이거나 parser.c가 없으면 명령 속성을 실행하여 parser.c를 새로 만듭니다. parser.c도 프로젝트에 추가되었으므로 빌드 시스템에서는 계속해서 parser.c를 컴파일하게 됩니다.