2010-01-18 63 views
0

我在写一个需要能够运行MATLAB命令的Java应用程序。为此,我正在使用Java应用程序可以调用的C程序来与MATLAB进行接口。但是,即使在研究MATLAB引擎之后,我似乎也无法弄清楚如何编译C程序。本文档似乎是从MATLAB内部编译C程序:http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/f39903.html。有什么方法可以从命令行编译?也就是说,我可以使用gcc的一些标志,包括所有相关的MATLAB支持(我用C通常不计划,很抱歉,如果我的语言是不完全正确的!)从C调用MATLAB

谢谢!

回答

0

也许你想做到以下几点:

1)从MATLAB命令行MATLAB编译MCC编译您的MATLAB代码(即M档)。 mcc编译器生成c dll。 matlab生成的c dll包含matlab m文件的c接口。请参阅以下关于如何从matlab M文件生成c dll的链接。 C Shared Library Target

2)编写使用所生成的MATLAB的dll在步骤1中采用c compiler.See有关如何调用是MATLAB生成的DLL MATLAB Compiler Generated Interface Functions

内的功能下面的链接编译C DLL C DLL

3)在步骤2中使用java生成的c dll。

+0

,如果你想使用独立C exe文件,而不是C DLL请访问以下链接 http://www.mathworks.com/access/helpdesk/help/toolbox/compiler/f7-996249.html – user152508 2010-01-18 11:47:56

+0

感谢您的联系!我会尝试这种方法,看看我是否遇到任何问题。谢谢! – 2010-01-18 12:17:35

0

我不使用MATLAB,但我猜,你必须做这样的事情:

  1. 编译C程序与MATLAB库创建Java可以使用共享库。
  2. 写JNI接口调用共享库,请务必在新的SO链接,并将所有那些从MATLAB你需要的。

把问题分解成步骤,您就整理出来。

+0

我认为我想要做的是有一个可执行的C程序。然后,我的Java应用程序可以调用此C程序并通过命令行传递参数。所以我需要步骤(1)的帮助,将C实际编译为可执行文件。 – 2010-01-18 11:26:43

1

您可以编译代码通常,你会为一个普通的C程序做,但你需要正确指定的依赖关系。

做的最好的方法是使用CMake的工具用的CMakeLists.txt文件。现在,给出如何编写CMakeLists.txt的演示给出here以及如何将C/C++与Matlab接口如何给出here。我希望它可以帮助....