IarBuild.exe 와 전처리기 defines

기술노트 191030

아키텍처:

All

컴포넌트:

general

업데이트:

2021-07-15 오후 10:03

소개

커맨드 라인에서 프로젝트를 빌드 할 시, IarBuild.exe IAR 커맨드 라인 빌드 도구를 사용할 수 있습니다. 일반적인 궁금증은 "IarBuild.exe에 커맨드 라인에서 전처리기 define(s)들을 어떻게 넘기나?" 입니다.

논의

컴파일러 arm\bin\iccarm.exe-D옵션을 가지고 있습니다. Help>C/C++ Development Guide문서 참조.

define MYDEFINE과 파일을 컴파일하려면 다음과 같이 수행합니다:

iccarm.exe main.c -D MYDEFINE=1

그러나 IarBuild.exe에서 -D와 유사한 옵션은 없으므로 커맨드 라인에서 전처리기 define을 지정할 수 없습니다.

대체 해결방안 1 – 프로젝트 설정 사용

PROD_TYPE 전처리기 기호와 같이 프로젝트에서 다르게 처리해야 하는 제품 변형이 몇 가지 있는 경우 이 방법을 선택하는 것이 좋습니다. Project>Edit Configurations를 사용하여 다양한 구성을 생성할 수 있습니다.

이 예에서는 ProdType1, ProdType2 및 ProdType3이라는 프로젝트의 새 구성을 생성할 수 있습니다. 여기서 PROD_TYPE을 Project>Options>C/C++ Compiler>Preprocessor>Defined symbols에서 다르게 정의할 수 있습니다.

이 후 다음 인수를 사용하여 IarBuild.exe를 호출할 수 있으며 이에 따라 PROD_TYPE 전처리 기호가 설정됩니다:

IarBuild.exe project.ewp -build ProdType1
IarBuild.exe project.ewp -build ProdType2
IarBuild.exe project.ewp -build ProdType3

대체 해결방안 2 – 커스텀 전달인자 변수 사용

예를 들어 자주 업데이트해야 하는 버전 번호 변수가 있는 경우 구성을 사용하는 대신 이 옵션을 선택하는 것이 좋습니다. 이 솔루션은 사용자 지정 인수 변수를 사용하며 IarBuild.exe에 -varfile 옵션을 제공합니다.

예제

단계 1:

Tools>Configure Custom Argument Variables를 사용하여 사용자 지정 인수 변수 ARGVAR_VER를 구성합니다.

단계 2:

Project>Options>C/C++ Compiler>Preprocessor>Defined symbols는 다음과 같이 사용자 지정 인수 변수 ARGVAR_VER를 사용하는 기호 VERSION을 정의합니다.

VERSION=$ARGVAR_VER$

단계 3:

IDE에서 생성된 .custom_argvars 파일을 가리키는 옵션 -varfile로 IarBuild.exe를 호출합니다.

IarBuild.exe test.ewp -make Debug -log all -varfile test.custom_argvars

.custom_argvars 파일은 작업 영역 디렉토리에 생성된 XML 파일입니다. 외부 편집기나 스크립트를 사용하여 이 파일을 편집할 수 있으므로 VERSION 전처리기 기호 값을 자동으로 변경할 수 있습니다.

결론

상기의 방법을 따르면, IarBuild.exe에 커맨드 라인을 통해 전처리기 define을 전달할 수 있습니다.

 

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

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