2011-01-21 38 views
2

我维护一个包含大量MEX文件的Matlab库。到目前为止,我已经用Matlab脚本构建了库,但是现在我想开始使用Microsoft Visual Studio IDE进行整个构建过程。很远我已经得到了具有以下的说明:如何在单个Visual Studio项目中创建多个.dll文件(.mexw32文件)?

但是这些指令似乎只与一个MEX文件的工作。我遇到的问题是如何在单个Visual Studio项目中构建多个.mexw32目标(或同等的.dll目标)?在MEX文件中创建单独的项目(在同一解决方案中)不是我想要考虑的选项。这些文件数以百计。

对于那些不熟悉Matlab的人来说,MEX文件是用C++编写的扩展文件,基本上编译成带有特殊扩展名.mexw32的.dll文件。其中每个出口都有一个入口点void mexFunction(...)。 AFAIK你不能将这些链接到一个单一的.dll这是我更喜欢做的。

+0

百的MEX文件?为什么不用C++编写整个程序? –

回答

0

我认为为每个MEX文件创建一个项目并将它们放入一个解决方案是唯一的选择。项目文件旨在表示一个目标,是静态库,动态库还是可执行文件。解决方案旨在表示一系列项目以及它们如何相互依赖。这正是你需要的。

也许你必须研究用一些脚本来自动化整个事情的可能性,以创建如此大量的项目并将它们添加到单个解决方案中。

1

在MATLAB脚本中建立它可能更容易。例如一个这样的MATLAB命令:

mex -f msvc90opts.bat MyMexFile.c 

会完成这项工作。你显然每个MEX文件都有一行。 msvc90opts.bat文件基于在bin\win32\mexopts下的MATLAB安装文件夹中提供的模板。

对于我的构建过程中,我则换这些调用mex成一个函数,然后使用调用该命令行:

matlab.exe -wait -sd . -nosplash -nojvm -r "BuildMex, exit" 
相关问题