빌드 작업 (pre-build and post-build)
기술노트 99436
아키텍처:
All
컴포넌트:
IDE
업데이트:
2021-07-16 오전 12:55
소개
본 기술 노트는 pre-와 post- 빌드 동작 사용에 대해 설명합니다.
.cmd 파일을 사용하실 경우 .vbs 파일 사용법에 대해서도 기술합니다.
논의
Pre-build 와 post-build 커맨드 라인 환경
빌드 전 및 빌드 후 작업 명령줄을 지정할 때:
- IAR Embedded Workbench 인수 변수(argument variables)를 사용할 수 있습니다.
$TOOLKIT_DIR$\bin
디렉터리는 환경변수PATH
에 포함됩니다.- 초기 작업 디렉터리는
$EW_DIR$\common\bin
입니다.
IAR Embedded Workbench for Arm을 예로 들어, 다음 명령 중 하나를 사용하여 빌드 로그 창에 ielfdumparm.exe
버전을 표시할 수 있습니다:
$TOOLKIT_DIR$\bin\ielfdumparm.exe --version
ielfdumparm.exe --version
ielfdumparm --version
그림 1 ielfdumparm --version
쉘 커맨드
DIR
, ECHO
, PATH
또는 REM
과 같은 쉘 내부 명령을 사용하려면 쉘을 시작해야 합니다. 예는 아래 스크린샷을 참조하십시오.
그림 2 - CMD.EXE /C DIR "$PROJ_DIR$\*.c"
Shell I/O redirection
쉘을 사용하면 쉘 명령 및 실행 파일의 출력을 파일로 리디렉션할 수 있습니다. 다음 예에서는 app.exe
라는 가상 윈도우즈 실행 파일을 사용합니다.
예제 I/O 1: 윈도우 커맨드 프롬프트에서 대화식으로:
app.exe > output.txt 2>&1
예제 I/O 2: 빌드 동작 커맨드 라인으로 부터:
CMD /C "app.exe > $PROJ_DIR$\output.txt 2>&1"
예제 I/O 3: 출력 파일은 "CMD /C
" 하나만 비워둘 경우에도 마찬가지입니다:
CMD /C "CMD /C "app.exe > $PROJ_DIR$\output.txt 2>&1""
.cmd 파일 사용
.cmd 파일을 사용하면 분리 가능한 명령 셸이 자동으로 제공됩니다. 따라서 일반 빌드 작업 명령줄에 비해 "CMD /C
"가 한 개 더 적게 필요합니다.
예를 들어, 프로젝트 디렉터리에 build.cmd 파일이 있는 경우 예제 I/O 3의 대체는 다음과 같은 빌드 작업이 될 수 있습니다.
$PROJ_DIR$\build.cmd "$PROJ_DIR$"
build.cmd 파일은 다음을 포함
PATH > %1\output.txt 2>&1
Visual Basic 스크립트(.vbs)를 사용하여 분리 가능한 프로세스를 생성하는 방법
IAR Embedded Workbench for Arm 8.20.2(이상)에서는 분리 가능한 명령 셸(.cmd)을 사용할 수 없지만 분리 가능한 프로세스를 사용할 수 있으며, 이 프로세스에서는 .cmd를 호출할 수 있습니다. 유일한 단점은 IAR Embedded Workbench로의 I/O 입력을 다시 사용할 수 없다는 것이다.
Visual Basic 스크립트(파일 확장자 .vbs)에서 분리 가능한 프로세스를 생성할 수 있습니다.
redir.vbs
처럼.vbs
스크립트를 만들고the_doer.cmd
의 예시처럼.cmd
파일을 씁니다.Wscript $PROJ_DIR$\redir.vbs "cmd /c $PROJ_DIR$\the_doer.cmd"
라인을 post-build 단계에 넣습니다.
redir.vbs
파일은 다음과 같습니다:
Dim runner
Set runner = CreateObject("WScript.Shell")
args = WScript.Arguments(0)
WScript.Echo(args)
Call runner.Run(args, 1, true)
the_doer.cmd
파일은 다음과 같습니다:
Echo "I am doing something"
pause
그림 3 – ' Wscript $PROJ_DIR$\redir.vbs "cmd /c $PROJ_DIR$\the_doer.cmd" '
예제 파일
일부 예제 파일은 이 링크를 통해 사용할 수 있습니다. 이러한 프로젝트 파일(.ewp)에는 IAR Embedded Workbench for Arm 7.80 (혹은 상위 버전)가 필요합니다.
분리 가능한 프로세스의 예제 파일은 이 링크를 통해 사용할 수 있습니다. IAR Embedded Workbench for Arm 8.20.2 (혹은 상위 버전)에서는 분리 가능한 프로세스를 사용할 수 있습니다.
몇 가지 추가 조언
- Build Log 창에서 빌드 작업의 출력을 보려면 해당 창의 상황에 맞는 메뉴를 사용하여 All를 선택합니다.
- 이전 IDE의 경우 (즉 공동 컴포넌트 7 혹은 하위 버전), Tools>Options>IDE Options>Messages>Show build messages>All옵션을 활성화 합니다.
- 프로젝트가 최신 상태이면 빌드 작업이 호출되지 않습니다. 즉 빌드 작업은 도구 체인에 있는 하나 이상의 도구가 호출된 경우에만 수행됩니다.
- 빌드 작업이 호출되도록 하는 한 가지 방법은 구성 XA 예제를 참조하십시오.
- IAR Embedded Workbench 인수 변수와 Microsoft 환경 변수는 유사합니다. 하지만 그들은 같지 않다. .cmd 파일의 $PROJ_DIR$과 같은 인수 변수의 값을 사용하려면 원하는 인수 변수를 매개 변수로 전달합니다.
- 빌드 전 또는 빌드 후 명령이 오류 코드(return
value != 0
)를 반환하면 전체 빌드/메이크 명령이 중단됩니다.- XB 설정 예제를 참고하시기바랍니다.
결론
이 기술 노트에서는 IAR Embedded Workbench에서 사용할 수 있는 빌드 전 및 빌드 후 작업의 사용에 대해 설명합니다.
마이크로소프트 제품 및 문서의 실제 사용에 기초하지만, 이러한 의견과 제안은 지침과 영감으로 간주되어야 한다.
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.