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.
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++.
clibgen.generateLibraryDefinition | Create definition file for C++ library |
clibgen.buildInterface | Create interface to C++ library without definition file |
Paquete clibgen | Summary of packages and classes to support calling C++ library functionality from MATLAB |
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
.
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.