为多个入口点函数生成代码
一个入口点函数是一个顶级MATLAB®您生成代码的函数。对于许多应用程序,你可能只需要为一个单一的入口点函数生成代码。你也可以生成C / c++代码同时从多个入口点函数。通过使用多个入口点函数,您可以:
产生多功能C / c++库包含的功能水平比如果你为每个入口点函数生成独立的库。
更有效地生成代码,股票代码当多个入口点函数依赖于相同的子功能。
生成库函数,可以使用共享内存进行通信,例如,当他们使用相同的全局变量。
作为一项最佳实践,生成一个墨西哥人在MATLAB函数来验证入口点交互生成C / c++库。
为多个入口点函数生成代码
为多个入口点函数生成代码,使用的语法codegen
参考页面。默认情况下,墨西哥人代码生成,codegen
:
生成一个墨西哥人函数在当前文件夹。只有一个墨西哥人当你指定多个入口点函数生成函数。打电话给从墨西哥人函数生成一个单一的入口点函数,看看从墨西哥人函数调用一个单一的入口点函数。
名墨西哥人的功能
。的名字
_mex
是第一个入口点函数的名字从一个吗字母顺序排列秩序。的名字
将生成的文件存储在子文件夹
codegen /墨西哥人/
。子文件夹
子文件夹
是第一个入口点函数的名称吗从左到右订单(后进入codegen
命令)。
您可以指定输出文件名和文件夹名称使用- o
选择:
codegen- omyOutputFileNamefun1fun2
在这种情况下,codegen
生成一个墨西哥人命名函数myOutputFileName
在当前文件夹并将生成的文件存储在子文件夹codegen /墨西哥人/ myOutputFileName
。
例如:两个入口点函数生成代码
为两个入口点函数,生成一个墨西哥人的功能ep1
和ep2
。函数ep1
需要一个输入和ep2
需要两个输入。使用- o
选项,生成的墨西哥人函数名称sharedmex
:
codegen- omySharedMexep1arg游戏{单(0)}ep2arg游戏{0,0 (1024)}
codegen
生成一个墨西哥人命名函数mySharedMex.mex
在当前文件夹并将生成的文件存储在子文件夹codegen /墨西哥人/ mySharedMex
。
生成并编译独立的库代码,使用配置:自由
选择。
codegen配置:自由- omySharedLibep1arg游戏单(0)ep2arg游戏{0,0 (1024)}
的codegen
命令生成的C / c++库代码codegen / lib / mySharedLib
文件夹中。
使用输出类型从一个入口点函数作为输入类型到另一个地方,看到的通过一个入口点函数的输出作为输入。信息查看入口点函数的代码生成报告,明白了代码生成报告。
从墨西哥人函数调用一个单一的入口点函数
假设您有一个墨西哥人的功能myMex
从多个入口点函数,生成fun1
,fun2
、…funN
。你可以叫一个单一的入口点函数,fun_i
通过使用这种语法:
myMex (“fun_i”param1, paramM . .)
这里的MATLAB函数签名fun_i
是paramM fun_i (param1 . .)
。
例如,考虑墨西哥人功能,mySharedMex
,入口点函数ep1
和ep2
。打电话给ep1
一个输入参数u
,输入:
mySharedMex (“ep1”,u)
打电话给ep2
与输入参数v
和x
,输入:
mySharedMex (“ep2”、v、x)
生成代码的多个入口点函数使用MATLAB编码器应用程序
这个例子展示了如何为多个入口点函数使用生成代码MATLAB编码器™应用程序。
创建的入口点函数
在当地可写的文件夹中,创建一个MATLAB文件,
ep1.m
,包含:函数y = ep1 (u)% # codegeny = u;
在同一个地方可写的文件夹中,创建一个MATLAB文件,
ep2.m
,包含:函数y = ep2 (u, v)% # codegeny = u + v;
创建测试文件
的文件夹,其中包含ep1.m
和ep2.m
创建一个MATLAB文件,ep_test.m
,电话ep1
和ep2
与输入示例。
函数[y, y₁] = ep_test y = ep1(单(2));日元= ep2(双(3),双(4));
打开MATLAB编码器应用程序
在MATLAB将来发布应用程序选项卡,在代码生成,单击MATLAB编码器应用程序图标。
指定源文件
在选择源文件页面,输入或选择的入口点函数的名称
ep1
。应用程序创建了一个项目使用默认名称
ep1.prj
在当前文件夹。为了避免代码生成错误,您必须保存项目文件和所有入口点MATLAB函数文件在同一文件夹中。添加
ep2
入口点函数的列表,点击添加入口点函数。输入或选择的入口点函数的名称ep2
。去定义输入类型一步,单击下一个。应用分析功能编码问题和代码生成。如果应用程序标识问题,它打开了审查代码生成准备页面,您可以查看并修复问题。在这个例子中,因为应用程序没有检测问题,它打开了定义输入类型页面。
定义输入类型
因为C使用静态类型,在编译时,MATLAB编码器必须确定在MATLAB文件中所有变量的属性。您必须指定所有入口点函数输入的属性。从入口点函数输入的属性,MATLAB编码器可以推断在MATLAB文件中所有变量的属性。
指定一个测试文件MATLAB编码器可以使用自动定义类型:
输入或选择测试文件
ep_test.m
。点击Autodefine输入类型。
测试文件,
ep_test.m
的入口点函数,调用ep1
和ep2
输入类型的示例。MATLAB编码器推断,ep1
、输入u
是单(1 x1)
。为ep2
,u
和v
是双(1 x1)
。去检查运行时问题一步,单击下一个。
检查运行时问题
的检查运行时问题一步生成一个墨西哥人文件从你的入口点函数,墨西哥人功能,运行和报告问题。这一步是可选的。然而,这是一个最佳实践来执行这一步骤。可以检测并修复运行时错误,很难诊断在生成的C代码。
打开检查运行时问题对话框中,单击检查问题箭头。
应用填充测试文件字段
ep_test
,测试文件用于定义的输入类型。点击检查问题。
应用程序生成一个墨西哥人命名函数
ep1_mex
为ep1
和ep2
。它运行测试文件ep_test
更换要求ep1
和ep2
对墨西哥人的调用函数。如果应用程序检测到问题在墨西哥人一代或执行函数,它提供了警告和错误消息。导航到有问题的代码并修复这个问题,点击这些消息。在本例中,应用程序并不检测问题。去生成代码一步,单击下一个。
生成墨西哥人的功能
打开生成对话框中,单击生成箭头。
集构建类型来
墨西哥人
。验证输出文件的名字是
ep1_mex
。默认情况下,应用程序使用的名字按字母顺序的第一个入口点函数。点击生成。
MATLAB编码器构建项目。它生成一个墨西哥人函数,
ep1_mex
在当前文件夹。MATLAB编码器还生成其他支持文件在一个文件夹金宝appcodegen /墨西哥人/ ep1_mex
。MATLAB编码器使用MATLAB函数的名称作为根生成的文件。它为墨西哥人创建一个特定于平台的扩展文件,所述命名约定。现在,您可以测试您的墨西哥人在MATLAB函数。看到从墨西哥人函数调用一个单一的入口点函数。
如果您生成一个静态库
ep1
和ep2
,MATLAB编码器建立项目和生成一个C库,ep1
在默认文件夹金宝app,支持文件,codegen / lib / ep1
。