主要内容

生成独立的C / c++的可执行文件MATLAB代码

生成一个C可执行的使用MATLAB编码器应用程序

这个例子展示了如何从MATLAB生成C可执行®代码使用MATLAB编码器™应用。在本例中,生成一个可执行的MATLAB函数生成一个随机的标量值。使用这个应用程序,您:

  1. 生成一个C的一个例子主要函数调用生成的库函数。

  2. 复制和修改生成的cmain.h

  3. 修改项目设置,以便应用程序能找到修改cmain.h

  4. 生成可执行文件。

创建的入口点函数

在当地可写的文件夹中,创建一个MATLAB函数,coderand,产生一个随机的标量值从开区间上的均匀分布标准(0,1):

函数r = coderand ()% # codegenr = rand ();

创建测试文件

在同一个地方可写的文件夹中,创建一个MATLAB文件,coderand_test.m,电话coderand

函数y = coderand y = coderand_test () ();

打开MATLAB编码器应用程序

在MATLAB将来发布应用程序选项卡,在代码生成,单击MATLAB编码器应用程序图标。

应用程序打开选择源文件页面。

指定源文件

  1. 选择源文件页面,输入或选择的入口点函数的名称coderand

    应用程序创建了一个项目使用默认名称coderand.prj在当前文件夹。

  2. 点击下一个定义输入类型的一步。编码问题的应用分析函数和代码生成。如果应用程序标识问题,它打开了审查代码生成准备页面,您可以查看并修复问题。在这个例子中,因为应用程序没有检测问题,它打开了定义输入类型页面。

定义输入类型

因为C使用静态类型,在编译时,MATLAB编码器必须确定在MATLAB文件中所有变量的属性。您必须指定所有入口点函数输入的属性。从入口点函数输入的属性,MATLAB编码器可以推断在MATLAB文件中所有变量的属性。

在这个例子中,函数coderand没有输入。

点击下一个检查运行时问题的一步。

检查运行时问题

检查运行时问题一步生成一个墨西哥人文件从你的入口点函数,墨西哥人功能,运行和报告问题。这一步是可选的。然而,这是一个最佳实践来执行这一步骤。可以检测并修复运行时错误,很难诊断在生成的C代码。

  1. 打开检查运行时问题对话框中,单击检查问题箭头

    选择或输入测试文件coderand_test

  2. 点击检查问题

    应用程序生成一个墨西哥人功能coderand。它运行测试文件取代调用coderand对墨西哥人的调用函数。如果应用程序检测到问题在墨西哥人一代或执行函数,它提供了警告和错误消息。点击这些信息导航到有问题的代码和解决这个问题。在本例中,应用程序并不检测问题。

  3. 点击下一个生成代码的一步。

生成一个C主要函数

当你生成一个可执行文件,您必须提供一个C / c++的主要功能。默认情况下,当您生成C / c++源代码,静态库,动态链接库,或可执行文件,MATLAB编码器生成一个主要函数。这个生成的主要功能是一个模板,您为您的应用程序修改。看到将生成的代码使用一个例子的主要功能。复制和修改生成的主要功能后,您可以使用它生成C / c++的可执行文件。或者,您可以编写自己的主要功能。

之前生成的可执行文件coderand,生成一个主要函数调用coderand

  1. 打开生成对话框中,单击生成箭头

  2. 生成对话框中,设置构建类型源代码语言c使用其他项目构建配置设置的默认值。

  3. 点击更多的设置

  4. 所有设置选项卡,在先进的,确认生成的例子主要被设置为生成,但不要编译、主函数的一个示例。点击关闭

  5. 点击生成

    MATLAB编码器生成一个c文件和一个main.h文件。应用表明,代码生成成功。

  6. 点击下一个打开完成工作流程页面。

    完成工作流程页面,在生成的输出,你会发现c在子文件夹coderand \ codegen \ lib \ coderand \例子

复制生成的示例主要文件

因为后续的代码生成可以覆盖生成的示例文件,在你修改这些文件,将它们复制到一个可写文件夹之外的codegen文件夹中。对于这个示例,副本cmain.h的子文件夹coderand \ codegen \ lib \ coderand \例子一个可写的文件夹,例如,c: \ myfile

修改生成的示例主要文件

  1. 文件夹中包含一个示例主要文件的副本,开放c

    生成c

  2. 修改c打印的结果coderand电话:

    • main_coderand,删除线

      双r;

    • main_coderand、替换

      r = coderand ()
      printf (" coderand = % g \ n”, coderand ());

    • 对于这个示例,主要没有参数。在主要删除线:

      命令行参数个数(无效);(空白)argv;

      变化的定义主要

      int main ()

    修改c

  3. 开放main.h

    生成main.h

  4. 修改main.h:

    • 添加的头包含文件:

      # include < stdio . h >

    • 改变主要的宣言

      extern int main ()

修改main.h

生成可执行文件

修改生成的示例主要文件后,打开之前创建项目文件或选择coderand.m从应用程序。你可以选择覆盖不同的项目或项目名称保存项目文件。

  1. 打开生成代码页面,扩展工作流步骤并点击生成

  2. 打开生成对话框中,单击生成箭头

  3. 构建类型可执行文件(. exe)

  4. 点击更多的设置

  5. 自定义代码选项卡,在额外的源文件,输入c

  6. 自定义代码选项卡,在其他包括目录,输入修改的位置cmain.h文件。例如,c: \ myfile。点击关闭

  7. 生成可执行文件,点击生成

    应用表明,代码生成成功。

  8. 点击下一个完成工作流程的一步。

  9. 生成的输出中,您可以看到生成的可执行文件的位置coderand.exe

运行可执行文件

在MATLAB在Windows运行可执行文件®平台:

系统(“coderand”)

请注意

coderand函数执行在这个例子中返回一个固定的值在0和1之间。生成的代码生成一个新值在每个执行,使用RandStream函数在MATLAB代码中。

C生成一个可执行的命令行

在本例中,您创建一个MATLAB函数生成一个随机的标量值和一个主要的C函数调用MATLAB函数。然后指定类型函数的输入参数,指定主函数,为MATLAB生成C可执行代码。

  1. 写一个MATLAB函数,coderand,产生一个随机的标量值从开区间上的均匀分布标准(0,1):

    函数r = coderand ()% # codegenr = rand ();
  2. 主要写一个C函数,c: \ myfile \ c,电话coderand。例如:

    / * * *主要。c * / # include < stdio。h > # include < stdlib。h > # include " coderand。h coderand_terminate # include。h " int main(){/ *调用初始化函数自动从生成的入口点函数。所以,这里不包括调用初始化。* / printf (" coderand = % g \ n”, coderand ());coderand_terminate ();返回0;}

    请注意

    在这个例子中,因为默认文件分区方法是为每个MATLAB文件生成一个文件,包括你“coderand_terminate.h”。如果您的文件分区方法设置为所有函数生成一个文件,做的包括“coderand_terminate.h”

  3. 配置您的代码生成参数主要包括C函数然后生成C可执行:

    cfg = coder.config (exe);cfg。CustomSource = ' c ';cfg。CustomInclude = c: \ myfile”;codegen配置cfg coderand

    codegenC生成一个可执行文件,coderand.exe在当前文件夹。它生成支持文件在默认文件夹金宝app,codegen / exe / coderandcodegen生成的最小集合# include选择所需的头文件代码语句替换库。

指定为C / c++主要功能可执行文件

当你生成一个可执行文件,您必须提供一个主要函数。C可执行,提供一个C文件,c。对于一个c++执行,提供一个c++文件,main.cpp。验证该文件夹包含主函数只有一个主文件。否则,c优先于main.cpp导致一个错误当生成c++代码。您可以指定主文件从“项目设置”对话框中,命令行或代码生成对话框。

默认情况下,当您生成C / c++源代码,静态库,动态链接库,或可执行文件,MATLAB编码器生成一个主要函数。这个生成的主要功能是一个模板,您为您的应用程序修改。看到将生成的代码使用一个例子的主要功能。复制和修改生成的主要功能后,您可以使用它生成C / c++的可执行文件。或者,您可以编写自己的主要功能。

当你用MATLAB函数转换为C / c++库函数或C / c++执行,MATLAB编码器生成一个初始化函数和一个终止功能。

  • 如果你的文件分区方法是设置为每个MATLAB文件生成一个文件,你必须包括终止头函数c。否则,不包括它c

  • 关于调用初始化和终止函数的更多信息,参见使用生成的初始化和终止功能

指定主要功能

指定使用的主要功能MATLAB编码器应用程序

  1. 打开生成对话框,在生成代码页面,点击生成箭头

  2. 点击更多的设置

  3. 自定义代码选项卡,设置:

    1. 额外的源文件名字的C / c++源文件包含主要函数。例如,c。有关更多信息,请参见指定为C / c++主要功能可执行文件

    2. 其他包括目录的位置c。例如,c: \ myfile

在命令行中指定的主要功能

设置CustomSourceCustomInclude代码生成配置对象的属性(参见使用配置对象)。的CustomInclude属性指示指定C / c++文件的位置CustomSource

  1. 创建一个配置对象为一个可执行:

    cfg = coder.config (exe);
  2. 设置CustomSource属性的名称C / c++源文件包含主要函数。(有关更多信息,请参见指定为C / c++主要功能可执行文件)。例如:

    cfg。CustomSource = ' c ';

  3. 设置CustomInclude属性的位置c。例如:

    cfg。CustomInclude = c: \ myfile”;

  4. 生成C / c++使用命令行选项可执行。例如,如果myFunction需要一个输入参数的类型:

    codegen配置cfg myMFunction args {0}

    MATLAB编码器编译和链接的主要功能与C / c++代码生成myMFunction.m