Этот пример создает файл определения библиотеки definematrixlib.mlx
для библиотеки с файлом общего объекта на Linux®.
Можно использовать любой компилятор C++, поддержанный MathWorks. Этот пример использует g ++ компилятор для компиляции языка C++. Чтобы проверить, что у вас есть компилятор C++, введите:
mex -setup cpp
Идентифицируйте имена и пути к артефактам библиотеки C++.
productPath = fullfile(matlabroot,"extern","examples","cpp_interface"); libPath = fullfile(productPath,"glnxa64"); hppFile = "matrixOperations.hpp"; hppPath = productPath; libFile = "libmwmatrixOperations.so"; % Name the interface libname = "matrixlib";
Сгенерируйте файл определения. 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. 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 путем щелчка по ссылке в выходном сигнале. Затем продолжите следующий шаг.