在 Visual Studio 或 g++ 上运行 Matlab Coder 输出项目
Posted
技术标签:
【中文标题】在 Visual Studio 或 g++ 上运行 Matlab Coder 输出项目【英文标题】:Run Matlab Coder Output Project on Visual Studio or g++ 【发布时间】:2014-11-29 23:32:58 【问题描述】:我想将我在 Matlab 中的仿真代码转换为 C++,并使用 Visual Studio 或 g++ 等 C++ 编译器运行它。我修改了我的代码以使用 Matlab Coder 成功构建一个 C++ 项目。 编码器在顶层项目目录中返回一个 .prj 文件,在 dll 目录中返回数十或数百个 c++ source/header/object 文件。我尝试使用 Visual Studio 2012 或 2013(我尝试使用这两个版本)打开 .prj 文件,但均未成功,他们甚至无法打开 .prj 文件。 我已确保使用 mex -setup 在 Matlab 中将 Visual Studio 配置为 C++ 语言编译器。 有谁知道如何使用 Visual Studio 或 g++ 处理 .prj 和后续文件?我现在不想让它可执行;我只想使用任一编译器运行它并确保它正常工作。 谢谢
【问题讨论】:
【参考方案1】:生成的prj
文件用于 MATLAB Coder GUI,而不是 Visual Studio。如果您在 MATLAB 中双击该文件,将打开 Coder GUI,您可以使用它生成代码。
有关在 Visual Studio 中使用生成代码的简单示例,您可以参考the documentation。
如果您要在运行 MATLAB 的同一平台上使用生成的代码,我建议将输出类型更改为静态库 (LIB
) 或共享库 (DLL
)。这样做会导致生成 C 或 C++ 代码,然后使用您指定的编译器将其编译到库中。然后,您可以编写代码调用生成的头文件中声明的函数,并在编译您的手写代码时链接到生成的库中。
对于 Visual Studio,您需要将 codegen 目录 codegen/lib/<proj_name>
添加到包含路径,并将生成的 LIB/DLL 文件添加为依赖项。使用 GCC,您需要在编译库中的代码和链接时将相同的目录添加到包含路径。
我other answer的后半部分有更多信息。
或者,如果您编写了 C main
函数,您可以将输出类型设置为 EXE
和 specify the main function 以让 MATLAB Coder 生成代码,使用您提供的 main
编译它并编译一个独立的可执行文件.
【讨论】:
【参考方案2】:有谁知道如何处理 .prj
我相信你应该在 .prj 文件上运行“mcc”
引用
"指定mcc使用指定项目文件中包含的设置。使用
-F 项目名称.prj 调用 mcc 时将 project_name 指定为项目文件名。此选项允许将 .prj 文件及其所有相关设置反馈给 mcc。使用 mcc 或 deploytool 创建的项目文件可以使用此选项。使用 -F 时,不能针对 mcc 调用其他参数。”
【讨论】:
命令mcc
是 MATLAB Compiler 的一部分,而不是 MATLAB Coder。 ***.com/a/18128820/3297440 描述了差异。
谢谢。 mcc 在 Matlab 中运行代码。我想知道如何在 Visual Studio 2013 或 g++ 等 C 编译器上运行它。以上是关于在 Visual Studio 或 g++ 上运行 Matlab Coder 输出项目的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Linux 上高效编译 Visual Studio C++ 项目
如何查看我的 Xamarin.Forms 应用程序是不是在 Visual Studio 中的 Android 6(或更高版本)上运行或/和可运行?
如何使 Visual Studio C++ 2010 编译行为像 gcc/g++? (或相反亦然)
无法在 Windows 7 上运行 Visual Studio 2003 IDE