2014-11-06 43 views
0

我创建了使用MATLAB的编码器工具包中的MEX文件可创建MEX文件,和它的作品在我的电脑上完全正常的,但是,当我把它给别人供他们使用,它错误,并不会工作。我怎样才能让由编码器工具包被别人

什么是合理分配,并允许其他人可以使用我的MEX文件/代码的正确步骤是什么?

在附注中,(我不知道这对我的问题有多大影响),但是在编码器创建的C代码文件中,它具有导致我计算机上的目录的变量,而不是相对路径。

+1

你给他们编译的MEX文件或源代码? MEX文件是二进制共享库,必须在目标平台上编译才能生成正确的可执行文件(Windows,Linux,OSX) – Amro 2014-11-06 20:54:55

+0

如何生成MEX以及在尝试在不同的目录上运行它时收到什么错误消息电脑?通常情况下,除了生成的MEX文件(我认为)之外,您不需要其他任何东西,但在分发MEX文件之前,您应该修复目录问题。但是,正如@Amro所指出的那样,您只能在MATLAB中使用MEX文件,所以客户端计算机必须安装MATLAB。 – am304 2014-11-06 21:03:49

+1

你的机器和你的同事的机器的架构是一样的吗?对于MATLAB编码器生成的MEX文件,您的同事使用的MATLAB版本应该至少与用于生成MEX文件的版本一样新。遇到的显式错误也会非常有帮助。 – 2014-11-07 07:25:31

回答

0

安装MCR(我原来的建议)只适用于编译器生成的代码,但你仍然需要一个兼容libmx和libmat。我想也许他们可以通过安装程序获得它们,但是如果它们不兼容(v6 vs v7),他们真的需要更新MATLAB。

一般情况下,避免在部署的代码路径。

+1

OP使用MATLAB Coder而不是MATLAB Compiler。编码器创建不依赖于MCR的C/C++源代码。 – Amro 2014-11-06 20:51:06

+0

@Amro它至少仍需要libmx和libmat共享库。 (在这种情况下,我现在的答案仍然是错误的,我想到了它)。函数本身肯定是独立的,虽然... – chappjc 2014-11-06 20:52:57

+0

好吧,但是你不能在MATLAB之外运行MEX函数。 MCR仅用于运行MATLAB不可用的部署(思考封装)应用程序。显然,如果没有必要的MX/MEX库,您将无法使用MEX文件。 – Amro 2014-11-06 20:58:12