Matlab 使用 .p 文件进行编译?

Posted

技术标签:

【中文标题】Matlab 使用 .p 文件进行编译?【英文标题】:Matlab Using .p file for compiling? 【发布时间】:2015-04-21 19:34:19 【问题描述】:

我正在做一个 Matlab 项目,我需要 UsbWebcams 包来从网络摄像头捕获图像。我可以在 matlab 中运行 .m 文件,但是当我编译项目以创建 exe 文件时,我的 exe 文件返回错误,因为 usbWebcams 包有一些特殊的 .p 文件(Utility.p,webcamchannel.p 等),我不能使用这些用于编译的文件。我在 Internet 上搜索,但没有找到任何答案。如何在我的项目中使用 .p 文件。我认为应该有一个解决方案,我应该找到它。感谢大家的帮助。

【问题讨论】:

你确定吗?从 R2009a 开始,将 P-Code 合并到 MATLAB 编译器中就可以使用:mathworks.com/matlabcentral/answers/… - 如果不能,那意味着您使用的是非常旧的 MATLAB 版本,但我提供的链接有一个合适的解决方法。 感谢您的回答。我知道这个答案,我的问题与此链接中的最后一个答案相同。我认为编译器无法编译 Usbwebcams 的 .p 文件,因此我的 exe 无法正常工作。如果它可以编译,我的 exe 应该可以正常工作,因为它可以在 matlab 上使用运行命令。也许,它可能是 Usbwebcams 包的特殊情况。顺便说一句,我正在使用 R2015a。 【参考方案1】:

虽然 MATLAB Compiler 应该能够编译 .p 文件,但您尝试编译的 .p 文件可能具有您看不到的依赖项,因为它们是 p 编码的。例如,它们可能调用外部库(如果它们用于连接网络摄像头,这很有可能),或者它们可能使用 eval 调用另一个函数。

无论它们是.m 文件还是.p 文件,如果您尝试编译的文件具有此类依赖项,则需要为编译器显式包含它,否则它将不知道在哪里找到它。但是,如果文件是 p 编码的,则很难找出依赖关系可能是什么。您可能需要直接向 MathWorks 寻求有关编译此功能的支持。

【讨论】:

以上是关于Matlab 使用 .p 文件进行编译?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 Windows 上使用 MATLAB 将一些 .m 编译成可以在 Linux 上运行的二进制文件吗?

matlab 2017b 支持的C编译器

Matlab 编译C源文件

Matlab 编译器 sdk 运行时

无法运行使用“演示文稿”生成报告的已编译 Matlab 代码

如何在 Linux 终端中使用 MCR(Matlab 编译器运行时)运行 Matlab 文件?