Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

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

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

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

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

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

    MATLAB은 32비트 라이브러리를 지원하지 않습니다.

  • Windows의 경우 — 가져오기 라이브러리 .lib 파일. 라이브러리가 지원되는 Microsoft® Visual Studio® 컴파일러로 컴파일되어 있다면 공유 라이브러리 .dll 파일만 필요합니다.

  • 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 패키지C++ 라이브러리 기능 호출을 지원하는 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 library 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.

Header and CPP Source Files

This example creates a MATLAB interface to a C++ library defined in source files matrixOperations.hpp and matrixOperations.cpp.

Header File and Import Library File on Windows

This example creates a MATLAB interface to a C++ library with an import library file matrixOperations.lib.

Header File and Shared Object File on Linux

This example creates a MATLAB interface to a C++ library with a shared object file libmwmatrixOperations.so.

Header-Only HPP File

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

문제 해결

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++ Library Definition Issues

Information for resolving error when publishing a MATLAB interface to a C++ library.

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.