本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

C++ 库

从 MATLAB® 直接调用 C++ 库功能

如果您有一个 C++ 共享库,它能导出可从另一个应用程序调用的功能,则您可以在 MATLAB 中直接使用这些类和函数,从而在 MATLAB 和 C++ 之间来回传递数据。

要开始使用,您首先必须发布一个接口库,其中包含以下各项。

  • 一个共享库文件 - Windows® 上的 .dll、Linux® 上的 .somacOS 上的 .dylib

  • 一个或多个头文件,包含由库导出的所有函数的声明

  • 一个导入库文件(可选)- .lib

  • 一个 MATLAB 支持的 C++ 编译器

如果已有接口,则可以使用 clib.packagename 语法调用库中的函数。该库必须位于您的系统或运行时搜索路径上。有关详细信息,请参阅 Call Functions in C++ Shared Library

如果使用 calllib 函数调用 C 库中的函数,请参阅 C 库

如果在 MEX 文件中编写 C/C++ 函数,请参阅 C++ MEX 应用程序C MEX 文件应用程序

函数

clibgen.generateLibraryDefinition为 C++ 库创建定义文件
clibgen.buildInterface在没有定义文件的情况下创建 C++ 库的接口
clibRelease从 MATLAB 中释放 C++ 对象
underlyingValue在 MATLAB 中创建的 C++ 枚举对象的基础数值

clibgen.LibraryDefinition用于 C++ 库的 MATLAB 定义
clibgen.ClassDefinition对应于 C++ 类的 MATLAB 类的定义
clibgen.ConstructorDefinition对应于 C++ 类构造函数的 MATLAB 函数的定义
clibgen.PropertyDefinition对应于 C++ 类的公共属性的 MATLAB 属性定义
clibgen.MethodDefinition对应于 C++ 类方法的 MATLAB 函数的定义
clibgen.FunctionDefinition对应于 C++ 包函数的 MATLAB 函数的定义
clibgen.EnumDefinition对应于 C++ 枚举的 MATLAB 枚举的定义

clibgen 包支持从 MATLAB 调用 C++ 库功能的包和类的汇总

主题

快速入门

System Requirements

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

MATLAB to C++ Data Type Mapping

Correspondence of MATLAB data types to C++ types.

发布 MATLAB 的 C++ 库接口

Steps to Publish a MATLAB C++ Library Interface

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

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 MATLAB interface to a Windows C++ library matrixOperations.

Define MATLAB Interface to C++ Library

How to update definitions in the MATLAB .mlx definition file.

从发布的 MATLAB 接口调用 C++ 函数

Call Functions in C++ Shared Library

To call a function in the library, use the MATLAB clib package.

Display Help for MATLAB Interface to C++ Library

Display package information and method signatures for MATLAB interface.

Handling Exceptions

Using C++ exceptions in MATLAB.

故障排除

Limitations to C/C++ Support

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

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.