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을 전달할 수 있습니다.
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.