3

我维护一个包含大量 MEX 文件的 Matlab 库。到目前为止,我已经使用 Matlab 脚本构建了该库,但现在我想开始在整个构建过程中使用 Microsoft Visual Studio IDE。按照以下说明,我已经走了很远:

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

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

4

2 回答 2

1

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

mex -f msvc90opts.bat MyMexFile.c

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

对于我的构建过程,我将这些调用包装mex到一个函数中,然后使用以下命令从命令行调用它:

matlab.exe -wait -sd . -nosplash -nojvm -r "BuildMex, exit"
于 2011-01-21T16:18:28.707 回答
0

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

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

于 2011-01-21T16:17:21.547 回答