빌드 작업 (pre-build and post-build)

기술노트 99436

아키텍처:

All

컴포넌트:

IDE

업데이트:

2021-07-16 오전 12:55

소개

본 기술 노트는 pre-와 post- 빌드 동작 사용에 대해 설명합니다.

논의

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)에서 분리 가능한 프로세스를 생성할 수 있습니다.

  1. redir.vbs처럼 .vbs스크립트를 만들고 the_doer.cmd의 예시처럼 .cmd파일을 씁니다.
  2. 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에서 사용할 수 있는 빌드 전 및 빌드 후 작업의 사용에 대해 설명합니다.

마이크로소프트 제품 및 문서의 실제 사용에 기초하지만, 이러한 의견과 제안은 지침과 영감으로 간주되어야 한다.

 

모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.

 

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.