Этот пример создает файл определения библиотеки для библиотеки с файлом библиотеки импорта на Windows®.
Можно использовать любой компилятор C++, поддержанный MathWorks. Этот пример использует Компилятор MinGW64 (C++) для компиляции языка C++. Чтобы проверить, что у вас есть компилятор C++, введите:
mex -setup cpp
Идентифицируйте имена и пути к артефактам библиотеки C++.
productPath = fullfile(matlabroot,"extern","examples","cpp_interface"); hppFile = "matrixOperations.hpp"; hppPath = productPath; libFile = "matrixOperations.lib"; libname = "matrixlib";
Идентифицируйте разделяемую библиотеку. Не прокомментируйте и выполните один из этих операторов на основе вашего выбранного компилятора.
%libPath = fullfile(productPath,"win64","mingw64"); %libPath = fullfile(productPath,"win64","microsoft");
Сгенерируйте файл определения. MATLAB® создает файл определения definematrixlib.mlx
.
clibgen.generateLibraryDefinition(fullfile(hppPath,hppFile),... "Libraries",fullfile(libPath,libFile),... "PackageName",libname,... "ReturnCArrays",false,... % treat output as MATLAB arrays "OverwriteExistingDefinitionFiles",true,... "Verbose",true)
Warning: Some C++ language constructs in the files for generating interface file are not supported and not imported. C++ compiler set to 'MinGW64 Compiler (C++)'. Definition file definematrixlib.mlx contains definitions for 10 constructs supported by MATLAB. - 5 construct(s) are fully defined. - 5 construct(s) partially defined and commented out. To include the 5 undefined construct(s) in the interface, uncomment and complete the definitions in definematrixlib.mlx. To build the interface, call build(definematrixlib).
Откройте сгенерированный файл определения в Live Editor путем щелчка по ссылке в выходном сигнале. Затем продолжите следующий шаг.