MATLAB Coder를 사용하여 MATLAB 코드에서 C/C++ 코드 생성하기
MATLAB® Coder™ 소프트웨어를 사용하여 MATLAB 코드에서 C/C++ 코드를 소스 코드, 정적 라이브러리, 동적 연결 라이브러리 또는 실행 파일로 생성할 수 있습니다. 생성된 코드는 MATLAB 환경 외부의 애플리케이션에 포함될 수 있습니다.
MATLAB 가속화가 가능하도록 설계된 C/C++ MATLAB 실행(MEX) 함수를 생성할 때에도 MATLAB Coder를 사용할 수 있습니다. C/C++는 MATLAB 코드보다 더 빠를 수 있으므로, MATLAB 환경에서 가속화된 MEX 함수를 생성하고 사용하여 MATLAB 코드의 속도를 높일 수 있습니다.
잘 작동하는 최적화된 C/C++ 코드를 MATLAB 코드에서 생성하려면 여러 사이클의 문제 해결과 코드 생성이 필요할 수 있습니다.
코드 생성을 위한 MATLAB 코드 작성하기
C/C++ 코드를 생성할 때 코드 생성기는 동적으로 유형이 지정되는 MATLAB 코드를 정적으로 유형이 지정되는 C/C++ 코드로 변환합니다. 동적으로 유형이 지정되는 언어에서는 런타임 시점에 변수의 클래스와 크기가 변경될 수 있습니다. C와 C++는 정적으로 유형이 지정되는 언어이므로 코드 생성기는 사용자가 코드를 생성하는 시점에 변수 유형을 결정해야 합니다. 코드 생성 중에 발생하는 여러 오류는 코드 생성기가 동적으로 유형이 지정되는 MATLAB 변수를 정적으로 유형이 지정되는 C/C++ 변수로 변환하려고 시도할 때 발생합니다. 코드 생성을 위해 MATLAB 코드를 작성할 때 다음 모범 사례를 따르면 가장 일반적인 코드 생성 오류를 방지할 수 있습니다.
변수를 사용하기 전에 변수의 클래스와 크기를 모두 정의합니다.
배열을 인덱싱하기 전에 사전할당합니다.
MATLAB 함수와 언어 기능이 코드 생성을 지원하는지 확인합니다.
이러한 모범 사례에 대한 추가 세부 정보는 C/C++ 코드 생성 시 변수 정의에 대한 모범 사례, Data Definition Considerations for Code Generation, C/C++ 코드 생성에 지원되는 함수 및 객체 항목을 참조하십시오.
코드 생성 워크플로
시작하기 전에 지원되는 컴파일러를 설치하십시오. 지원되는 컴파일러의 최신 목록은 지원 및 호환되는 컴파일러를 참조하십시오.
코드를 생성할 때 다음 단계를 따르십시오.
진입점 함수 식별하기와 MATLAB 코드 검사하기 — 하나 이상의 진입점 함수를 선택하고 MATLAB 코드가 코드 생성이 가능하지 확인하여 코드 생성을 준비합니다.
진입점 함수 입력값의 유형 지정하기 — 진입점 함수가 입력값을 가지는 경우 해당 입력값의 클래스와 크기를 지정합니다. MATLAB Coder 앱이나 명령줄 또는 진입점 함수에서 입력 유형을 지정할 수 있습니다.
Check for Issues in MATLAB Code Using MEX Functions — 독립 실행형 C/C++ 코드 또는 가속화된 MEX 함수를 생성하기 전, MATLAB 코드에 문제가 있는지 검사합니다. 이 단계를 수행하면 생성 코드에서는 훨씬 찾기 어려운 문제를 감지하고 수정할 수 있습니다.
Optimize Generated C/C++ and MEX Code — 선택적으로, 생성 코드의 실행 속도나 메모리 사용량을 최적화할 수 있습니다. 최적화 전략을 구현한 후 MATLAB Coder 코드에 문제가 있는지 다시 검사합니다.
Generate C/C++ Code — 독립 실행형 C/C++ 코드 또는 가속화된 MEX 함수를 생성합니다.