如何在单个Visual Studio项目中构建多个.dll文件(.mexw32文件)?

时间:2011-01-21 16:04:28

标签: c++ visual-studio matlab mex

我维护一个由大量MEX文件组成的Matlab库。到目前为止,我已经使用Matlab脚本构建了库,但现在我想开始在整个构建过程中使用Microsoft Visual Studio IDE。我已经完成了以下指示:

但是这些说明似乎只适用于单个MEX文件。我遇到的问题是如何在单个Visual Studio项目中构建多个.mexw32目标(或等效的.dll目标)?为MEX文件创建单独的项目(在同一解决方案中)不是我迫切需要考虑的选项。这些文件数以百计计算。

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

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

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

也许您必须研究使用一些脚本自动完成整个项目以创建大量项目并将其添加到单个解决方案中的可能性。

相关问题