Этот пример создает файл определения библиотеки definematrixlib.mlx
для библиотеки с динамическим совместно использованным файлом библиотеки на macOS.
Можно использовать любой компилятор C++, поддержанный MathWorks. Чтобы проверить, что у вас есть компилятор C++, введите:
mex -setup cpp
Этот пример использует g ++ компилятор.
Идентифицируйте имена и пути к артефактам библиотеки C++.
productPath = fullfile(matlabroot,"extern","examples","cpp_interface"); libPath = fullfile(productPath,"maci64"); hppFile = "matrixOperations.hpp"; hppPath = productPath; libFile = "libmwmatrixOperations.dylib"; % Name the interface libname = "matrixlib";
Сгенерируйте файл определения. MATLAB® создает файл определения definematrixlib.mlx
.
clibgen.generateLibraryDefinition(fullfile(hppPath,hppFile),... "Libraries",fullfile(libPath,libFile),... "PackageName",libname,... "OverwriteExistingDefinitionFiles",true,... % delete existing definition files "ReturnCArrays",false,... % treat output as MATLAB arrays "Verbose",true)
Warning: Some C++ language constructs in the files for generating interface file are not supported and not imported. Using g++ compiler. 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 путем щелчка по ссылке в выходном сигнале. Затем продолжите следующий шаг.