Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

MATLAB 인터페이스를 C++ 라이브러리에 작성하기

C++ 라이브러리에 대한 MATLAB® 인터페이스를 생성하려면 clibgen 패키지를 사용하십시오.

C++ 라이브러리에 대한 MATLAB 인터페이스를 작성(퍼블리시)하려면 다음 항목이 필요합니다.

  • 라이브러리에서 내보낸 모든 함수의 선언이 포함된 하나 이상의 헤더 파일. C++ 개발 환경에서 헤더를 컴파일하고 C++ 응용 프로그램의 기능을 사용할 수 있어야 합니다.

  • 공유 라이브러리 파일 — .dll(Windows®), .so(Linux®) 또는 .dylib(macOS). 라이브러리가 헤더 파일에서 완전히 정의된 경우 라이브러리 파일은 선택 사항입니다.

  • 추가로, 가져오기 라이브러리 파일(Windows용) — .lib

  • MATLAB에서 지원하는 C++ 컴파일러.

MATLAB 인터페이스는 C++ 함수 시그니처를 MATLAB 함수 시그니처로 자동으로 변환합니다. 하지만 일부 C++ 언어 구문의 경우 MATLAB 언어에 정확하게 일치하는 항목이 없습니다. 이러한 차이를 해결하기 위해 MATLAB은 정의 파일(.mlx 파일 확장자)을 사용합니다. 이 파일은 누락된 정보를 제공하고자 퍼블리셔가 만들고 수정하는 파일입니다. 퍼블리셔는 함수 시그니처를 해석하고 누락된 정보를 제공하기에 충분한 C++ 언어 기술을 갖추고 있어야 합니다.

퍼블리셔가 정의해야 하는 정보의 일례로 함수에 데이터를 전달하는 포인터를 들 수 있습니다. 포인터는 데이터 블록의 시작 부분을 나타내는 메모리 내 위치입니다. 이 데이터를 MATLAB에 안전하게 전달하려면 퍼블리셔가 데이터의 크기를 지정해야 합니다. 일반적으로, 함수 도움말 문서는 추가 입력 인수로 데이터의 크기를 나타냅니다. 퍼블리셔는 MATLAB 정의 파일을 사용하여 값을 지정하고, 그러면 MATLAB이 이에 상응하는 MATLAB 함수 시그니처를 만듭니다. 함수 시그니처를 표시하려면 Display Help for MATLAB Interface to C++ Library 항목을 참조하십시오.

다른 MATLAB 사용자가 이 인터페이스를 사용할 수 있도록 하려면 MATLAB 인터페이스 파일을 그 사용자에게 제공하십시오. 최종 사용자는 공유 라이브러리 파일을 시스템 경로나 런타임 경로에 배치하고 인터페이스 파일을 MATLAB 경로에 배치합니다.

라이브러리의 함수를 호출하는 방법에 대한 자세한 내용은 사전 작성된 MATLAB 인터페이스를 C++ 라이브러리에 사용하기 항목을 참조하십시오.

함수

clibgen.generateLibraryDefinitionCreate definition file for C++ library
clibgen.buildInterfaceCreate interface to C++ library without definition file

패키지

clibgen 패키지Summary of packages and classes to support calling C++ library functionality from MATLAB

도움말 항목

Requirements for Building Interface to C++ Libraries

Requirements for calling functions in external, shared C++ libraries from MATLAB.

Steps to Publish a MATLAB Interface to a C++ Library

Outline for publishing an interface to a C++ library.

Define MATLAB Interface for C++ Library

Generate and edit the MATLAB .mlx definition file to customize and define the interface.

Publish Help Text for MATLAB Interface to C++ Library

Provide documentation for end-users of a MATLAB interface to a C++ Library.

Build C++ Library Interface and Review Contents

If library functionality is missing, the library might contain unsupported language features or data types.

Publish Interface to Header-Only C++ Library

This example creates a MATLAB interface to a C++ library defined in a header file school.hpp.

Publish Interface to Shared C++ Library on Windows

This example creates a Windows version of the MATLAB interface to C++ library matrixOperations.

Publish Interface to Shared C++ Library on Linux

This example creates a Linux version of the MATLAB interface to C++ library matrixOperations.

문제 해결

Limitations to C/C++ Support

C/C++ library features not supported in MATLAB.

C++ Limitation Workaround Examples

Example code to work around C++ library limitations.

Troubleshooting C++ Interface Issues

Information for resolving C++ interface issues.

Errors Parsing Header Files on macOS

Work around for errors parsing header file on macOS.

Build Error Due to Compile-Time Checks

How to remove C++ members containing compile-time assertions.