主要内容

发布对共享C ++库的界面Linux.

此示例创建了一个matlab®接口到C ++库基质化对于Linux®。该过程包括:

  • 生成定义文件(deffenematrixlib.mlx.)。

  • 修改定义文件以完成MATLAB无法自动转换的任何定义。

  • 构建库界面。

有关更多信息,请参阅将MATLAB接口构建到C ++库

MATLAB为您提供了一个C ++库和标题文件,可以在此示例中使用。文件位于此文件夹中及其子文件夹中:

fullfile(matlabroot,“外人”“例子”“cpp_接口”);

生成定义文件

生成界面的第一步是准备必要的文件夹和文件和调用clibgen.generatelibrarydefinition.生成定义文件。

验证支持的C+万博1manbetx+编译器

要构建界面,请使用使用的编译器来构建C ++库。

墨西哥-设置cpp

创建发布者文件夹

为MATLAB接口文件创建一个文件夹。

pubpath =.“~/MATLAB/publisher/matrixexample/”;如果~isfolder(pubPath)mkdir(pubPath)结尾cd(公共路径)

标识C++库文件

标识C ++库工件的名称和路径。

productpath = fullfile(matlabroot,“外人”“例子”“cpp_接口”);libpath = fullfile(ProductPath,“glnxa64”);%头文件名hppfile ='矩阵operations.hpp';包含所有标题文件的文件夹的%完整路径hppPath=productPath;%包含包含文件的文件夹的完整路径ipath = hpppath;%库文件名libfile =“libmwmmatrixOperations.so”;

命名界面

默认情况下,MATLAB创建一个名为基质化。对于此示例,请将名称更改为matrixlib

libname =“matrixlib”;

称呼clibgen.generatelibrarydefinition.

要创建界面,必须指定:

  • 标题文件名称母系.HPP.及其位置。

  • 使用包含文件的文件夹的路径使用'IncludePath'论点

  • 库文件的名称和位置矩阵operations.lib., 使用'图书馆'论点

可选择,您可以:

  • 使用该库重命名库'包裹名字'论点

  • 使用显示生成消息'verbose'论点

clibgen.generatelibrarydefinition(fullfile(hpppath,hppfile),......'IncludePath',ipath,......'图书馆',fullfile(libpath,libfile),......'包裹名字',libname,......'returncarrays'错误的......%处理输出作为matlab阵列'verbose',真的)

验证库。

deffenematrixlib;

查看功能

尽管某些构造需要额外的定义,但您可以查看可用的功能。如果此功能足以满足您的需要,则可以继续使用构建库接口步。否则,继续执行这一步定义缺少的构造

摘要(Deffenematrixlib)
matlab interface to matrixlib库类clib.matrixlib.mat构造函数:clib.matrixlib.mat()clib.matrixlib.mat(clib.matrixlib.mat)方法:uint64 getLength()没有属性定义函数clib.matrixlib.updatematbyx(clib。MatrixLib.mat,Int32)

定义缺少的构造

要定义缺少的构造,请单击链接中的链接生成库定义输出消息以编辑中的定义deffenematrixlib.mlx.. 有关编辑此文件的信息以及指定参数的示例,请参阅定义MATLAB签名的缺失信息

  1. 搜索定义文件赛特马特方法和取消注释定义它的语句。定义src论点,在这个默认声明,替换“蓝”

    DefineArgument(SetMatdefinition,“src”“clib.array.matrixlib.int”“输入”“蓝”);
  2. 在方法中格马特,定义守价通过更换输出“蓝”

    定义输出(getMatDefinition,“retval”“int32”“蓝”);
  3. 在方法中复印纸,定义Dest.替换的论点“蓝”

    DefineArgument(副本,“目的地”“clib.array.matrixlib.int”“输入”“蓝”);
  4. 在函数中阿德马特,定义函数中的参数阿德马特通过替换1

    DefineArgument(AddMatdefinition,“垫子”“clib.matrixlib.Mat”“输入”,1);
  5. 在函数中updatematbysize.,定义arr.替换的论点“蓝”

    defineargument(Updatematbysizedefinition,“arr”“clib.array.matrixlib.int”“输入”“蓝”);

保存并关闭定义文件。

构建库接口

创建MATLAB接口文件matrixlibinterface.dll.

构建(deffenematrixlib)
构建界面文件'matrixlibinterface.dll'。界面文件'matrixlibinterface.dll'文件夹'matlab / publisher / matrixexample / matrixlib'。要使用库,请将界面文件文件夹添加到MATLAB路径。

一定要单击消息中的链接以将接口文件添加到路径。

测试接口

要测试界面,请参阅Linux接口调用函数到C++共享库

也可以看看

相关话题