【问题标题】:Matlab deployment: add files to source control?Matlab 部署:将文件添加到源代码管理?
【发布时间】:2010-12-19 21:52:15
【问题描述】:

我已经创建了一个运行良好的部署项目,现在我想将它添加到源代码控制存储库以供其他人使用。
我面临的主要问题是deploytool 创建的.prj 文件包含在其他计算机上不起作用的绝对路径。到目前为止,我已经尝试了以下方法:

  • 仅使用mcc 而不使用deploytool 创建独立的exe。这很好用,但我可以找到一种方法来创建包含所有内容的最终 _pkg.exe。 mcc 似乎无法创建此文件,并且似乎没有任何其他工具可以创建。真的是这样吗?
  • 编辑.prj 文件以包含相对路径而不是绝对路径。这仅部分起作用,因为.prj 文件包含一个名为MATLABPath 的部分,该部分始终替换为matlab 的当前setpath。使用此文件的任何人都必须检查它,因为它在使用时会被更改。
  • 找到一种方法来生成.prj 文件。 mcc 文档说:Project files created using either mcc or deploytool are eligible to use this option. 建议有一种方法可以使用 mcc 创建一个 .prj 文件,但我无法找到如何做到这一点。

这种情况有解决办法吗?

【问题讨论】:

  • 您应该为此向 MathWorks 提出增强请求。
  • 如果有 .prj XML 文件格式的 XSD 方案,我也很高兴。

标签: matlab matlab-deployment mcc matlab-compiler


【解决方案1】:

这是mcc option documentation

我发现最有用的是使用 mcc 创建一个独立的 exe:

  mcc -C -m <function.m> -a <fig> -a <dll> -a <etc> -d <outputPath>

-C 选项告诉mcc 将 ctf 文件(这是所有已编译的 MATLAB 内容的存档)生成为单独的文件。我在某些目标计算机上使用单个 exe 并编译了所有内容时遇到了问题。

-m 选项告诉mcc 制作一个exe。

-a 选项告诉mcc 在包中包含指定的文件。例如,如果您的脚本使用两个 fig 文件和一个数据文件,您需要为每个文件添加一个 -a 以确保将它们放入输出包中。


告诉 mcc 使用项目文件(我自己从未这样做过):

 mcc -F <projectfile>

此外,如果您在 Windows 上使用 R2009a,则有一个 known bug that requires some manifest manipulation

【讨论】:

  • 哇,也许下次您可以费心实际阅读问题本身而不仅仅是标签。
  • @shoosh - 你说得对,我略读了这个问题并回答了我希望看到的东西,而不是你问的东西。对于那个很抱歉。我实际上从来没有像你那样使用过deploytool,所以我根本不明白你所说的_pkg.exe是什么意思。在回答之前,我应该先阅读一下。
【解决方案2】:

我们在使用 Matlab Builder JA 时遇到了同样的问题。不仅路径是绝对的,Matlab 还添加了它在路径上找到的其他工具箱,这很烦人,因为构建机器没有很多工具箱的许可证。

所以我们要做的是:

  • 手动编辑 prj 文件以去除绝对路径
  • 将其检入源代码管理并使用 mcc 构建
  • 在部署工具接触 prj 文件后,切勿签入(在编辑器中手动进行所有更改)

我们的修订控制让您无需显式签出即可修改文件,因此使用 deploytool 不是问题。但是你为什么想要呢?

不确定最终的打包器做了什么,但如果它只是将 MCR 与编译后的二进制文件捆绑在一起,我会写一个替换。

【讨论】:

    【解决方案3】:

    我个人使用 Visual Studio 2005 项目来维护我的部署项目,然后使用构建命令步骤将 VCPROJ 动态转换为 PRJ http://younsi.blogspot.com/2011/11/matlab-relative-path-issue-in-prj.html

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 2017-12-07
      • 2019-04-30
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多