Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab部署:将文件添加到源代码管理?_Matlab_Matlab Deployment_Mcc_Matlab Compiler - Fatal编程技术网

Matlab部署:将文件添加到源代码管理?

Matlab部署:将文件添加到源代码管理?,matlab,matlab-deployment,mcc,matlab-compiler,Matlab,Matlab Deployment,Mcc,Matlab Compiler,我已经创建了一个运行良好的部署项目,现在我想将其添加到源代码管理存储库中供其他人使用。 我面临的主要问题是,deploytool创建的.prj文件包含在其他计算机上无法工作的绝对路径。到目前为止,我已经尝试了以下方法: 仅使用mcc创建独立的exe,而不使用deploytool。这非常有效,但我可以找到一种方法来创建包含所有内容的最终\u pkg.exe。mcc似乎无法创建此文件,而且似乎没有任何其他工具能够创建此文件。真的是这样吗 编辑.prj文件以包括相对路径而不是绝对路径。这只能部分起作

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

  • 仅使用
    mcc
    创建独立的exe,而不使用
    deploytool
    。这非常有效,但我可以找到一种方法来创建包含所有内容的最终
    \u pkg.exe
    。mcc似乎无法创建此文件,而且似乎没有任何其他工具能够创建此文件。真的是这样吗
  • 编辑
    .prj
    文件以包括相对路径而不是绝对路径。这只能部分起作用,因为
    .prj
    文件包含一个名为
    MATLABPath
    的部分,该部分始终替换为matlab的当前
    setpath
    。任何使用此文件的人都必须将其签出,因为在使用时它正在被更改
  • 找到生成
    .prj
    文件的方法。mcc文档说:
    使用mcc或deploytool创建的项目文件有资格使用此选项。
    建议有一种方法可以使用
    mcc
    创建
    .prj
    文件,但我无法找到如何做到这一点
这种情况有解决办法吗?

以下是解决方法

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

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


另外,如果您在Windows上使用R2009a,则有一个问题。

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

因此,我们要做的是:

  • 手动编辑prj文件以去除绝对路径
  • 将其检查到源代码控制中,并与mcc一起构建
  • 永远不要在使用deploytool触摸prj文件后签入该文件(在编辑器中手动执行所有更改)
我们的修订控制允许您在不显式签出的情况下修改文件,因此使用deploytool不是问题。但你为什么要这么做


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

我个人使用Visual Studio 2005 project来维护我的部署项目,然后使用build命令步骤动态地将VCPROJ转换为PRJ

哇,也许下次你可以费心实际阅读问题本身,而不仅仅是标签。@shoosh-你说得对,我略读了问题,回答了我希望看到的内容,而不是你问的内容。很抱歉。实际上,我从未像您那样使用过
deploytool
,所以我根本不明白您所说的_pkg.exe是什么意思。在给出答案之前,我应该先读一读。你应该向MathWorks提出增强请求。如果知道.prjXML文件格式是否有XSD方案,我也会很高兴。
 mcc -F <projectfile>