Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Crear interfaz de MATLAB en biblioteca de C++

Para crear una interfaz de MATLAB® en una biblioteca de C++, utilice el paquete de clibgen

Para crear (editar) una interfaz de MATLAB en una biblioteca de C++, necesita:

  • Uno o más archivos de encabezado que contienen declaraciones de todas las funciones que exporta la biblioteca. Debe ser capaz de compilar los encabezados en un entorno de desarrollo de C++ y utilizar la funcionalidad en aplicaciones de C++.

  • Un archivo de biblioteca compartida: .dll en Windows®, .so en Linux® o .dylib en macOS. Si la biblioteca está definida por completo en los archivos de encabezado, el archivo de biblioteca es opcional.

  • Además de un archivo de biblioteca de importación en Windows: .lib

  • Un compilador C++ compatible con MATLAB.

La interfaz de MATLAB convierte de forma automática las firmas de funciones C++ en firmas de funciones de MATLAB. Sin embargo, algunas estructuras del lenguaje C++ no tienen coincidencias únicas con el lenguaje de MATLAB. Para solventar este problema, MATLAB utiliza un archivo de definición (con la extensión de archivo .mlx) que un editor crea y modifica para aportar la información ausente. El editor debe contar con suficientes competencias en lenguaje C++ para interpretar una firma de función y aportar la información ausente.

Un ejemplo de información que el editor tiene que definir se refiere al uso de punteros para pasar datos a las funciones. Un puntero es una ubicación en la memoria que indica el comienzo de un bloque de datos. Para transferir los datos a MATLAB de una forma segura, el editor debe especificar el tamaño de los datos. Por lo general, la documentación de la función indica el tamaño de los datos, posiblemente como un argumento de entrada adicional. Mediante el archivo de definición de MATLAB, el editor especifica el valor y, a continuación, MATLAB crea la firma de función de MATLAB equivalente. Para mostrar las firmas de función, consulte Mostrar ayuda para la interfaz a la biblioteca de C++MATLAB.

Para poner esta interfaz a disposición de otros usuarios de MATLAB, facilíteles el archivo de interfaz de MATLAB. El usuario final pone el archivo de biblioteca compartida en la ruta del sistema o de tiempo de ejecución y el archivo de interfaz en la ruta de MATLAB.

Para obtener información sobre las llamadas a las funciones en la biblioteca, consulte Utilizar interfaz de MATLAB predefinida en biblioteca de C++.

Funciones

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

Paquetes

Paquete clibgenSummary of packages and classes to support calling C++ library functionality from MATLAB

Temas

Requisitos del sistema

Requisitos para llamar a funciones en bibliotecas de C++ compartidas externas.MATLAB

Pasos para publicar una interfaz de biblioteca de C++MATLAB

Esquema para publicar una interfaz en una biblioteca de C++.

Definir interfaz a la biblioteca de C++MATLAB

Cómo actualizar las definiciones en el archivo de definición.MATLAB.mlx

Publicar texto de ayuda modificado

Compilar biblioteca y revisar contenido

Definir y publicar interfaz en la biblioteca de C++ de solo encabezado

En este ejemplo se crea una interfaz a una biblioteca de C++ definida en un archivo de encabezado.MATLAB

Definir y publicar interfaz en la biblioteca compartida de C++

En este ejemplo se crea una interfaz a una biblioteca compartida de C++.MATLAB

Publish Interface to Shared C++ Library on Linux

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

Solución de problemas

Limitaciones a la compatibilidad con C/C++

Las características de la biblioteca C/C++ no son compatibles.MATLAB

C++ Limitation Workaround Examples

Example code to work around C++ library limitations.

Solución de problemas de interfaz de C++

Información para resolver problemas de interfaz de C++.

Errores al analizar archivos de encabezado en macOS

Solucionar los errores de análisis de archivo de encabezado en macOS.

Error de compilación debido a comprobaciones de tiempo de compilación

Cómo quitar miembros de C++ que contienen aserciones en tiempo de compilación.