gpt4 book ai didi

c++ - MATLAB Coder hello world 从头到尾

转载 作者:搜寻专家 更新时间:2023-10-31 02:16:22 28 4
gpt4 key购买 nike

编辑

在经历了如此多的努力却只产生了错误的 .exe 文件之后,我们决定不再花更多的时间尝试生成代码,而是自己编写代码。谢谢大家的宝贵时间。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

TL;DR 问题

我已经使用 MATLAB Coder 从 MATLAB 导出了 C++ 代码,我该如何编译它?

完整问题

使用 Matlab 应用程序“MATLAB Coder”,您可以将 MATLAB 代码编译为 C++ 代码。我知道一些步骤,但不是全部,经过大量谷歌搜索后,我只找到了一些答案,但没有成功。让我们一起努力,把信息拼凑起来。我打算将这个问题作为指南来组织。

这是我们想要作为 C++ 代码的 MATLAB 程序:

disp('Hello World')

<强>0。重写:

首先,MATLAB Coder 需要一个函数和一个运行该函数的 .m 文件。代码被重写为一个名为 HelloWorld.m

的文件
function [] = Helloworld()
disp('Hello World')
end

还有另一个名为 ScriptHelloWorld.m 的文件,其中包含:

HelloWorld();

<强>1。运行 MATLAB Coder

程序非常简单,一旦您找到它。它在“应用程序”中,然后您可以选择启动 MATLAB Coder。这包含在 MATLAB 2015 及以后的版本中。启动后,选择要运行的文件,然后选择运行它的文件。这里没有问题,因为它们都是非常简单的文件。我们决定将该项目命名为“HejWorld”。

<强>2。获取文件

这是信息不再那么清楚的地方。所有文件都将放在您选择的文件夹中,据说它们都很重要。文件结构如下所示:

Compiled data file structure

lib 的内部看起来像这样:

Inside of lib folder

mex 的内部看起来像这样:

Inside of mex file

<强>3。编译

这就是我无能为力的地方。它应该只是编译文件,但事实证明这并不是一件容易的事。我找到了where the makefile is在 codegen/lib/HelloWorld/HelloWorld_rtw.mk 中,但可能会有更多的 makefile,因为我不确定要构建什么。

此外,根目录中还有一个 .prj 文件,HelloWorld.prj,如第一个屏幕截图所示。我找不到用 gcc 或任何其他应用程序运行它的方法。

感谢您的帮助!

最佳答案

你需要lib/Helloworld 下的所有文件。如果您从 shell 调用该目录中的 makefile Helloworld_rtw.mk,它应该在 unix 平台上创建一个库 Helloworld.so,在 Windows 上创建一个 Helloworld.lib。

gmake -f Helloworld_rtw.mk build

您可以将您的代码链接到该库以调用该库中的主要函数 Helloworld。调用 Helloworld 的示例 main.c 位于示例目录下。在将 Helloworld 库添加为链接器选项并包含 header 路径后,您应该能够将此示例编译为可执行文件。

要查看它是否正常工作而不是在您的代码中调用 disp,您可能需要执行一些简单的算术运算,如下所示。这是因为 disp 不会为 lib 目标生成任何代码。

function [y] = Helloworld(u)
y = 2*u;
end

在 ScriptHellowWorld.m 中

Helloworld(2);

调用 Helloworld 函数后,您可以在 main 函数的拷贝中手动添加 printf 语句。

关于c++ - MATLAB Coder hello world 从头到尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028685/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com