코드 생성 옵션으로, 옵션 값 또는 공백으로 구분된 옵션 값 목록으로 지정됩니다. 옵션 값은 임의 순서로 입력할 수 있습니다. 옵션이 충돌하는 경우 가장 오른쪽 옵션이 우선합니다.
코드 구성 객체 지정하기
코드 구성 객체를 지정하려면 -config 옵션을 사용합니다. 이 객체만 사용하거나 다른 옵션 값과 함께 사용할 수 있습니다. Configure Code Generation and Build Settings 항목을 참조하십시오. 코드 생성기는 코드 구성 객체를 사용하여 지정한 옵션보다 codegen 함수와 함께 지정한 옵션을 우선적으로 적용합니다.
| 옵션 값 | 설명 |
|---|
-config configObject | 코드 생성 설정이 포함된 구성 객체를 지정합니다. 코드 구성 객체를 만들려면 coder.config 함수를 사용하십시오. 예를 들어, 정적 라이브러리를 위한 코드 구성 객체를 만들려면 다음 명령을 사용하십시오. 그런 다음, 생성된 객체를 codegen에 전달하십시오. 예를 들면 다음과 같습니다. |
생성 코드의 언어 제어하기
다음 표에는 생성 코드의 언어를 제어하는 옵션이 나와 있습니다. 기본적으로, 코드 생성기는 C99 (ISO) 언어 표준과 호환되는 C 코드를 생성합니다. C++ 코드를 생성할 경우 코드 생성기는 기본적으로 C++11 (ISO) 언어 표준과 호환되는 C++ 코드를 생성합니다.
C 코드를 생성할 경우 C++ 언어 표준은 지원되지 않습니다. C++ 코드를 생성하면서 C 언어 표준을 지정하면, 코드 생성기는 선택한 C 표준에서 제공되는 C 수학 라이브러리와 C++03 언어 기능을 사용합니다. 지원되는 언어 표준에 대한 자세한 내용은 Change Language Standard Used for Code Generation 항목을 참조하십시오.
| 옵션 값 | 설명 |
|---|
-lang:c | C 코드를 생성합니다. |
-lang:c++ | C++ 코드를 생성합니다. |
-std:c89/c90
| C89/90 (ANSI) 언어 표준과 호환되는 코드를 생성합니다. |
-std:c99
| C99 (ISO) 언어 표준과 호환되는 코드를 생성합니다. 이 언어 표준은 C 코드를 생성할 때 디폴트 값입니다. |
-std:c++03 | C++03 (ISO) 언어 표준과 호환되는 코드를 생성합니다. |
-std:c++11 | C++11 (ISO) 언어 표준과 호환되는 코드를 생성합니다. 이 언어 표준은 C++ 코드를 생성할 때 디폴트 값입니다. |
-std:c++14 | C++14 (ISO) 언어 표준과 호환되는 코드를 생성합니다. |
-std:c++17 | C++17 (ISO) 언어 표준과 호환되는 코드를 생성합니다. |
-std:c++20 | C++20 (ISO) 언어 표준과 호환되는 코드를 생성합니다. |
출력 유형 제어하기
다음 표에는 코드 생성기에서 생성되는 코드의 유형을 제어하는 옵션이 나와 있습니다. 기본적으로 코드 생성기는 MEX 함수를 생성하고 생성 코드를 빌드합니다.
| 옵션 값 | 설명 |
|---|
-config:dll | 동적 C/C++ 라이브러리를 생성합니다. |
-config:exe | C/C++ 실행 파일을 생성합니다. |
-config:lib | 정적 C/C++ 라이브러리를 생성합니다. |
-config:mex | MEX 함수를 생성합니다. |
-c | 소스 코드만 생성합니다. 코드 생성기는 make 명령을 호출하거나 오브젝트 코드를 빌드하지 않습니다. 예를 들어, foo 함수에 대해 정적 C 라이브러리를 생성하면서 생성 코드를 빌드하지 않고 소스 코드만 생성하려면 다음 명령을 사용합니다. |
-jit | JIT(Just-in-Time) 컴파일을 사용하여 MATLAB 코드의 추상 표현을 포함하는 JIT MEX 함수를 생성합니다. JIT 컴파일을 사용하면 MEX 함수 생성 속도를 높일 수 있습니다. 이 옵션은 MEX 함수를 생성하는 경우에만 사용할 수 있습니다. 이 옵션은 사용자 지정 코드 포함 또는 OpenMP 라이브러리 사용과 같은 일부 코드 생성 옵션과 호환되지 않습니다. JIT 컴파일을 사용하여 MEX 생성 속도 높이기 항목을 참조하십시오. |
전역 변수 지정하기
-globals 옵션을 사용하여 명령줄에서 전역 변수를 지정할 수 있습니다. MATLAB 작업 공간에서도 전역 변수를 정의하고 초기화할 수 있습니다. Generate Code for Global Variables 항목을 참조하십시오.
| 옵션 값 | 설명 |
|---|
-globals globalArray | 코드를 생성하는 MATLAB 함수에 사용되는 전역 변수를 정의하고 초기화합니다. globalArray는 전역 변수 이름과 초기값으로 구성된 셀형 배열입니다. 이 셀형 배열의 형식은 {global1,value1,global2,value2,...}입니다. 예를 들면 다음과 같습니다.
또는 coder.typeof 함수를 사용하여 전역 변수 유형을 지정합니다. 이 경우 -globals 옵션에 전달하는 셀형 배열의 형식은 {global1,{type1,value1},global2,{type2,value2},...}입니다. 예를 들면 다음과 같습니다. |
최적화 지정하기
다음 표에는 생성 코드의 최적화를 지정하는 옵션이 나와 있습니다. 생성 코드를 최적화하는 데 사용할 수 있는 추가 전략에 대한 자세한 내용은 Optimize Generated C/C++ and MEX Code 항목을 참조하십시오.
| 옵션 값 | 설명 |
|---|
-O enable:inline
-O disable:inline
| 생성 코드에서 함수 인라인 처리를 활성화하거나 비활성화합니다. 기본적으로 코드 생성기는 인라인 처리를 사용합니다. 함수 인라인 처리에 대한 자세한 내용은 Control Inlining to Fine-Tune Performance and Readability of Generated Code 항목을 참조하십시오. 함수 호출을 항상 인라인으로 처리하면 코드 생성 최적화에서 더 많은 코드를 처리해야 하므로 코드 생성 시간이 증가할 수 있습니다. |
-O enable:openmp
-O disable:openmp
| 생성 코드에서 OpenMP 라이브러리의 사용을 활성화하거나 비활성화합니다. 이 최적화를 활성화했고 OpenMP 라이브러리를 사용할 수 있는 경우, 코드 생성기는 다중 스레드에서 실행할 수 있는 parfor 루프를 생성합니다. 기본적으로 코드 생성기는 OpenMP 라이브러리를 사용할 수 있으면 이를 사용합니다. OpenMP 최적화를 비활성화했거나 OpenMP 라이브러리를 사용할 수 없는 경우, 코드 생성기는 parfor 루프를 for 루프처럼 처리하여 단일 스레드에서 실행되는 코드를 생성합니다. Control Compilation of parfor-Loops 항목을 참조하십시오. |
-rowmajor | 행 우선 배열 레이아웃을 사용하는 코드를 생성합니다. 기본적으로 코드 생성기는 열 우선 배열 레이아웃을 사용합니다. 자세한 내용은 Generate Code That Uses Row-Major Array Layout 항목을 참조하십시오. |
디버그 옵션 지정하기
다음 표에는 생성 코드 및 코드 생성 프로세스를 디버그하는 데 사용할 수 있는 옵션이 나와 있습니다. 독립 실행형 코드 또는 가속화된 MEX 함수를 생성하기 전, MEX 함수를 생성하고 실행하여 MATLAB 코드에 규정 준수 문제가 있는지 검사하는 것이 가장 좋습니다. Check for Issues in MATLAB Code Using MEX Functions 항목을 참조하십시오.
| 옵션 값 | 설명 |
|---|
-g | C/C++ 컴파일러에 대해 디버그 모드를 활성화합니다. 디버그 모드를 활성화하면, 코드 생성기는 컴파일러가 사용하는 일부 최적화를 비활성화하며, 따라서 코드 생성 속도가 빨라질 수 있습니다. 그러나 생성 코드의 실행 속도는 더 느려질 수 있습니다. |
-profile | MATLAB 프로파일러를 사용하여 생성된 MEX 함수를 프로파일링합니다. Profile MEX Functions by Using MATLAB Profiler 항목을 참조하십시오. |
-report | 코드 생성 리포트를 생성합니다. 이 옵션이 지정되지 않은 경우 codegen은 오류 메시지 또는 경고 메시지가 발생하거나 사용자가 -launchreport 옵션을 지정한 경우에만 리포트를 생성합니다. Embedded Coder®가 있는 경우 이 옵션은 코드 대체 리포트의 생성도 활성화합니다. |
-reportinfo info | 코드 생성에 대한 정보를 기본 MATLAB 작업 공간의 변수 info로 내보냅니다. Access Code Generation Report Information Programmatically 항목을 참조하십시오. |
-silent | 코드 생성이 경고 없이 성공할 경우 메시지의 표시를 차단하려면 이 최적화를 활성화합니다. 이 옵션은 경고와 오류 메시지는 차단하지 않습니다. |
-test testFile | testFile을 실행하고 원래 MATLAB 함수에 대한 호출을 MEX 함수에 대한 호출로 대체합니다. 이 옵션을 사용하는 것은 coder.runTest를 실행하는 것과 동일합니다.
이 옵션은 MEX 함수를 생성하는 경우에만 지원됩니다. Embedded Coder 라이선스가 있는 경우 SIL(Software-in-the-Loop) 또는 PIL(Processor-in-the-Loop) 검증을 위한 코드를 생성할 때에도 이 옵션을 사용할 수 있습니다. Code Verification Through Software-in-the-Loop and Processor-in-the-Loop Execution (Embedded Coder) 항목을 참조하십시오. |
-v | 코드 생성 상태와 타깃 빌드 로그 메시지를 표시합니다. |
생성된 파일의 이름과 위치 제어하기
다음 표에는 코드 생성기에서 생성되는 파일의 디폴트 기본 이름(base name)과 위치를 변경하는 데 사용할 수 있는 옵션이 나와 있습니다.
| 옵션 값 | 설명 |
|---|
-d folder | 생성된 파일을 folder로 지정된 절대 경로 또는 상대 경로에 저장합니다. 폴더 이름은 다음을 포함해서는 안 됩니다.
공백(일부 운영 체제 구성에서 코드 생성 실패의 원인이 될 수 있음). 7비트 ASCII 이외의 문자(예: 일본어 문자) 별표(*), 물음표(?), 달러 기호($), 숫자 기호(#)
folder에 의해 지정된 폴더가 존재하지 않는 경우 코드 생성기는 해당 폴더를 생성합니다. |
-o basename | 기본 이름 basename을 사용하여 MEX, 라이브러리, 실행 파일을 생성합니다. 기본 이름은 공백을 포함해서는 안 됩니다. 공백이 있으면 일부 운영 체제 구성에서 코드 생성이 실패할 수 있습니다. MEX 함수를 생성하는 경우 basename은 유효한 MATLAB 함수 이름이어야 합니다. |
코드 생성 경로 수정하기
MATLAB 함수 또는 사용자 지정 코드 파일을 찾기 위해 코드 생성기가 추가 폴더를 검색하도록 지시하려면 -I 옵션을 사용합니다.
| 옵션 값 | 설명 |
|---|
-I path | path를 코드 생성 경로의 시작 부분에 추가합니다. 코드 생성기는 MATLAB 함수 또는 사용자 지정 C/C++ 파일을 검색할 때 코드 생성 경로를 우선 검색합니다. 코드 생성기가 코드 생성 경로에서 클래스를 검색하지 않으므로, 클래스는 MATLAB 검색 경로에 있어야 합니다. 자세한 내용은 Paths and File Infrastructure Setup 항목을 참조하십시오.
7비트 ASCII 이외의 문자(예: 일본어 문자)가 경로에 포함된 경우 코드 생성기가 이 경로에서 파일을 찾지 못할 수 있습니다. 여러 경로를 포함하려면 포함시킬 각 경로의 앞에 -I를 사용합니다. 경로를 문자형 벡터 또는 string형으로 전달하십시오. 예를 들면 다음과 같습니다. |
생성된 코드 내보내기
다음 표에는 생성 코드 또는 코드 생성 설정을 다른 개발 환경이나 MATLAB Coder 앱에 전송하는 데 사용할 수 있는 옵션이 나와 있습니다.
| 옵션 값 | 설명 |
|---|
-package zipFile | 생성된 독립 실행형 코드와 관련 종속 항목을 이름이 zipFile인 압축 ZIP 파일로 패키징합니다. 이 ZIP 파일을 사용하여 코드 파일을 다른 개발 환경으로 이전하여 패키징을 풀고 재빌드할 수 있습니다. 이 옵션을 사용하는 것은 packNGo 함수를 사용하는 것과 동일합니다. |
-toproject projectFile | 진입점 함수의 이름, -args 및 -nargout 지정, codegen 옵션 및 모든 고급 구문을 이름이 projectFile인 MATLAB Coder 프로젝트 파일에 저장합니다. codegen 지정을 MATLAB Coder 앱으로 전송하려면 이 명령을 사용하십시오. 다음 명령을 사용하여 이 프로젝트 파일로 코드를 생성할 수도 있습니다. Convert codegen Command to Equivalent MATLAB Coder Project 항목을 참조하십시오. |
숫자형 변환 수행하기
다음 표에는 MATLAB 코드의 숫자형 변환을 수행하는 데 사용할 수 있는 옵션이 나와 있습니다. 이들 옵션을 사용하려면 Fixed-Point Designer™ 라이선스가 있어야 합니다. 이 옵션은 네임스페이스에 속한 진입점 함수에는 지원되지 않습니다.
| 옵션 값 | 설명 |
|---|
-config:single | 단정밀도 MATLAB 코드를 생성합니다. |
-double2single singleConfig | singleConfig(coder.SingleConfig 객체여야 함)에서 지정한 설정을 사용하여 단정밀도 MATLAB 코드를 생성합니다.
코드 생성기가 폴더 codegen/fun/single에 파일을 생성합니다. 여기서 fun은 진입점 함수의 이름입니다. 이 옵션을 지정하고 코드 생성기에 독립 실행형 코드를 생성하도록 지시할 경우 코드 생성기는 폴더 codgen/outputType/subfolder에 단정밀도 C/C++ 코드도 생성합니다. 여기서 각 항목은 다음과 같습니다.
자세한 내용은 Generate Single-Precision MATLAB Code 항목을 참조하십시오. |
-float2fixed float2fixedConfig | float2fixedConfig(coder.FixPtConfig 객체여야 함)에서 지정한 설정을 사용하여 고정소수점 코드를 생성합니다.
이 옵션을 지정하고 코드 생성기에 독립 실행형 코드를 생성하도록 지시할 경우 코드 생성기는 고정소수점 C/C++ 코드를 생성합니다. 코드 생성기가 폴더 codegen/outputType/fun_fixpt에 파일을 생성합니다. 여기서 fun은 진입점 함수의 이름이고 outputType은 다음과 같이 지정됩니다.
이 옵션을 지정하고 독립 실행형 코드를 생성하지 않을 경우 코드 생성기는 폴더 codegen/fun/fixpt에 고정소수점 MATLAB 코드를 생성합니다. 이 옵션을 사용하려면 float2fixedConfig 객체의 TestBenchName 속성을 사용하여 테스트 파일을 지정해야 합니다. 자세한 내용은 Convert MATLAB Code to Fixed-Point C Code 항목을 참조하십시오. |
-singleC | 단정밀도 C/C++ 코드를 생성합니다. 자세한 내용은 Generate Single-Precision C Code at the Command Line 항목을 참조하십시오. |
CUDA 코드 생성하기
다음 표에는 MATLAB 코드에서 CUDA® 코드를 생성할 때 사용할 수 있는 옵션이 나와 있습니다. 이들 옵션을 사용하려면 GPU Coder™ 라이선스가 있어야 합니다.
| 옵션 값 | 설명 |
|---|
-config gpuconfig | CUDA 코드 생성 설정이 포함된 구성 객체를 지정합니다. 이 구성 객체를 생성하려면 coder.gpuConfig (GPU Coder) 함수를 사용하십시오. Generate Code Using the Command Line Interface (GPU Coder) 항목을 참조하십시오. |
-gpuprofile | GPU 성능 분석기를 사용하여 생성 코드를 프로파일링합니다. 단일 명령을 사용하여 CUDA 코드를 생성하고 프로파일링을 수행하려면 -gpuprofile 옵션과 -test 옵션을 사용하여 codegen을 실행합니다. MEX가 아닌 타깃을 프로파일링하려면 Embedded Coder 라이선스가 있어야 합니다. 자세한 내용은 GPU 성능 분석기 (GPU Coder) 항목을 참조하십시오. |