0

我想将我在 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 和后续文件?我现在不想让它可执行;我只想使用任一编译器运行它并确保它正常工作。谢谢

4

2 回答 2

2

生成的prj文件用于 MATLAB Coder GUI,而不是 Visual Studio。如果您在 MATLAB 中双击该文件,将打开 Coder GUI,您可以使用它生成代码。

有关在 Visual Studio 中使用生成代码的简单示例,您可以参考文档

如果您要在运行 MATLAB 的同一平台上使用生成的代码,我建议将输出类型更改为静态库 ( LIB) 或共享库 ( DLL)。这样做会导致生成 C 或 C++ 代码,然后使用您指定的编译器将其编译到库中。然后,您可以编写代码来调用生成的头文件中声明的函数,并在编译您的手写代码时链接到生成的库中。

对于 Visual Studio,您需要将 codegen 目录添加codegen/lib/<proj_name>到包含路径,并将生成的 LIB/DLL 文件添加为依赖项。使用 GCC,在编译库中的代码和链接时,您需要将相同的目录添加到包含路径。

我的另一个答案的后半部分包含更多信息。

或者,如果您main编写了 C 函数,您可以将输出类型设置为EXE指定主函数以让 MATLAB Coder 生成代码,使用您提供的代码进行编译main并编译一个独立的可执行文件。

于 2014-12-01T02:33:03.433 回答
0

有谁知道如何处理 .prj

我相信你应该在 .prj 文件上运行“mcc”

引用

"指定 mcc 使用指定项目文件中包含的设置。使用

-F project_name.prj 调用mcc时指定project_name为工程文件名。此选项允许将 .prj 文件及其所有相关设置反馈给 mcc。使用 mcc 或 deploytool 创建的项目文件可以使用此选项。使用 -F 时,不得针对 mcc 调用其他参数。”

于 2014-11-30T00:25:45.560 回答